Visual Studio2013 配置opencv3.3.0 x64系统

注:小白一个,第一次写博客,可能会有一些理解上的错误,只此记录自己测试成功的坎坷之路,已备以后查看,同时给有需要之人。

我是win10 64 位,之前安装了visual studio 2013, 现在要安装最新版本的 opencv 3.3.0.(可能换成vs2015 配置要容易一些。)
opencv 最新发布的几个版本(已知的 3.3.0 和3.2.0)默认支持 vs 2015。 即直接从官网下载的压缩包带有vc14 的字样,代表了vs 2015版本,vs2013相应的应该是vc12。所以不能直接应用于vs2013版本。我当时直接下载安装出错尝试修复无效,后来才发现好像不支持vs2013. 参考了多篇博客,反反复复终于运行成功。

参考链接:
http://blog.csdn.net/guduruyu/article/details/68482967
http://www.cnblogs.com/dosrun/archive/2013/01/13/2858373.html
http://blog.csdn.net/tfy1028/article/details/8660823
http://blog.csdn.net/cv_jason/article/details/70037545

这一部分主要参考http://blog.csdn.net/guduruyu/article/details/68482967

1.opencv 源码 下载:
1)官网
2). Gihub
两个有一点区别是 在后面生成的.lib的文件名不一样,(Gihub上是d,官网是OFF,后面就知道了)
Gihub 下载:

2.将源码压缩包解压到编译目录下,并在同一目录下新建build_64和msvc_2013两个文件夹,前者作为Cmake编译目录,后者作为编译后的安装目录。

3.Cmake 3.8.0下载 链接 http://blog.csdn.net/cv_jason/article/details/70037545(来自http://blog.csdn.net/cv_jason/article/details/70037545) 或者从官网下,要下载相应版本。我不想折腾,直接用的上面这个链接.
下载完成之后 双击安装。比较简单,具体我也不懂,直接默认选项。

4.开始菜单 比较明显的可以找到Cmake 应用程序,打开CMake,开启编译选项的配置。设置好source code目录和build目录,点击Configure按钮,选择VS版本,这里选择的是win64 VS2013,选择本地编译器作为默认编译器,点finish,即开始配置过程。(配置过程需要一段时间,可以先干点其他的,等待初步配置完成,注意保证网络的畅通,Cmake的过程中需要下载第三方库)
注意:路径的即为刚才解压出来的opencv所在的目录。


5.初步配置完成,如下图所示。需要修改一下相关选项,这里只需要修改两个地方,其他默认即可,一是将CMAKE_INSTALL_PREFIX修改成之前创建的msvc2013_64目录,二是点击add Entry按钮,添加CMAKE_DEBUG_POSTFIX选项,值设为“d”,用于区分debug和release版本,否则编译安装时debug版本会被release版本覆盖。设置好后,再点击configure,配置完成后点击“generate”生成编译工程。

6.VS2013下编译与安装。经过上一步后,我们在build_64目录下即可看到CMake生成的编译工程,如下图所示。
打开opencv.sln,用vs2013打开,显示“正在分析解决方案中的文件...”,解析完成后.

注意此时 要考虑在 x64 下进行编译,若debug 旁边的小框中没有x64 选项,参考http://blog.csdn.net/tfy1028/article/details/8660823 中的步骤2.( 右键解决方案->属性,

将平台选为X64,若无此选项,则点击配置管理器,选择X64平台,若无则新建一个X64平台并选中。)

先在Debug下对工程进行编译(BUILD->Build Solution)(即,生成——生成解决方案..._很傻的自己),编译要等一会完成(其中,可能会有报错,出现缺少python27_d.lib相关的错误,可以不必理会),完成后,将INSTALL设置为启动工程(在INSTALL右键->Set as startup project),然后进行安装(BUILD->Project Only->Build Only Install);再在Release下进行编译和安装(和Debug类似)。

7.添加环境变量。安装完成后,我们在vs2013_64目录下即可看到一个include文件夹和x64文件夹,我们在x64目录下逐级找到bin文件夹,将bin的路径添加到系统的环境变量里,如下图所示。

8.之后需要新建工程,.cpp文件,然后


配置包含目录 加上三个路径 (找到自己相应的路径,include下有两个文件夹分别为opencv,opencv2)
D:anzhuang\opencv-3.3.0\opencv\build\include;
D:anzhuang\opencv-3.3.0\opencv\build\include\opencv;
D:anzhuang\opencv-3.3.0\build\include\opencv2;

在  库目录 加上路径  D:anzhuang\opencv-3.3.0\opencv\build\x64\vc12\lib;(也是找到相应的bin文件夹的位置,这里出现了vc12,而不是直接安装opencv3.3.0出现的vc14)

完成后点左侧的 链接器-输入,
在 附加依赖项 加上 lib文件夹中的所有项。
注意:最后一位是d的在前,无d 的在后面。
之前有提到过Gihub 和官网上有一些不一样的地方,就是在这里。 从官网上下载的应该把“d”改为“OFF”,看一下lib文件夹就知道了。两种都可以运行。已经在不同的电脑上测试过。
opencv_calib3d330d.lib
opencv_core330d.lib
opencv_dnn330d.lib
opencv_features2d330d.lib
opencv_flann330d.lib
opencv_highgui330d.lib
opencv_imgcodecs330d.lib
opencv_imgproc330d.lib
opencv_ml330d.lib
opencv_objdetect330d.lib
opencv_photo330d.lib
opencv_shape330d.lib
opencv_stitching330d.lib
opencv_superres330d.lib
opencv_video330d.lib
opencv_videoio330d.lib
opencv_videostab330d.lib
opencv_calib3d330.lib
opencv_core330.lib
opencv_dnn330.lib
opencv_features2d330.lib
opencv_flann330.lib
opencv_highgui330.lib
opencv_imgcodecs330.lib
opencv_imgproc330.lib
opencv_ml330.lib
opencv_objdetect330.lib
opencv_photo330.lib
opencv_shape330.lib
opencv_stitching330.lib
opencv_superres330.lib
opencv_video330.lib
opencv_videoio330.lib
opencv_videostab330.lib

这样配置完成后,以后每次新建一个项目都需要重新设置包含目录和库目录以及 附加依赖项lib,一个技巧是可以设置 新项目属性表 并保存,之后 只需 添加现有属性表即可。
具体参考一下链接:
https://www.zhihu.com/question/24400428

9.测试。网上找的简单测试程序。

    #include<iostream>
    #include<core/core.hpp>
    #include<highgui/highgui.hpp>

    
      using namespace cv;


    int main()
    {
// 读入一张图片(游戏原画)
Mat img = imread("1.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画", img);
// 等待6000 ms后窗口自动关闭
waitKey(6000);
    }

如果有问题,可以先尝试重启试一下,好像电脑配置环境变量时需要重启。

细节可能有些地方没有描述清楚,可以参考那几个链接。

补充:好像会出现 “无法查找或打开 PDB 文件”的错误信息, 但是可以运行

收获:测试 运行成功很开心。
以后的道路还很长,折腾着折腾着可能也就习惯了。
大神好多,要是能知道原理就好了。不过好像也不太重要。

原文地址:https://www.cnblogs.com/lifeofershisui/p/7445062.html