Win7 64位 + VS2015 +Opencv3.3.0重编译

来源:互联网 发布:新浪微博seo 编辑:程序博客网 时间:2024/06/02 22:13

Win7x64 + VS2015 + Opencv3.3.0重编译

参考文章:
http://blog.csdn.net/dcrmg/article/details/54097419#comments

参考文章:
http://www.cnblogs.com/freedomshe/archive/2013/01/11/win7_vs2012_opencv_rebuild.html

参考文章:
http://blog.csdn.net/winnie_rq/article/details/52124974


一、下载安装

在官网http://opencv.org/releases.html下载opencv3.3.0,解压放在D盘目录下,无需安装。

这里写图片描述

在官网https://cmake.org/download/下载CMake3.8.2,解压放在D盘目录下,无需安装。

这里写图片描述

二、重编译

1、用CMake生成VS2015的OpenCV工程

第一步:打开CMake解压后的文件夹,在目录D:\cmake-3.8.2-win64-x64\bin下双击cmake-gui.exe;

这里写图片描述

第二步:在弹出的CMake窗口里,输入Opencv源码所在路径;

第三步:在D盘目录下创建新文件夹MyOpenCV,用于生成的OpenCV工程存放目录,如果不创建,好像在Configure后会弹出错误框,提示“Error inconfiguration process, project files may be invalid”;

第四步:点击“Configure”按钮;

这里写图片描述

第五步:在弹出的对话框中选择编译器Visual Studio 14 2015(这里需要注意的是该编译器生成的是x86的文件,如果编译64位dll应该选择64位的,我这里选成了32位的(无意的,当时选的时候不知道这些),不过后面看网上说一般都用32位的编译器,32位和64位后面操作应该差不多);

按照上述设置后,点击“Finish”后就开始执行第一次生成。可能我的网速比较慢,别人说2min就好了,我整个过程下来,都看了两集《老友记》了。

这里写图片描述

第一次生成后

这里写图片描述

第六步:第一次“Configure”生成之后,但还需要第二次执行生成,再次单击“Configure”按钮,执行第二次生成;

第七步:经过两次“Configure”之后,点击“Generate”按钮生成最终的OpenCv解决方案。退出Cmake。

这里写图片描述

2、用VS2015编译生成自己Opencv库

第一步:生成后在自己创建的文件夹MyOpenCV下查看生成的项目,双击打开工程OpenCV.sln;

这里写图片描述

第二步:在CmakeTargets下选择ALL_BUILD,右键单击生成;
第三步:在CmakeTargets下选择INSTALL,右键单击生成;

这里写图片描述

第四步:生成好后,打开MyOpenCV文件夹,将install文件夹拷贝到D:\opencv下,并将install重命名为vc14x86。此时D:\MyOpenCV没用了,但不能删除,否则无法跟踪源码,网上说可以通过“清理解决方案”来减小,我还没有尝试。

这里写图片描述

将install文件夹拷贝到D:\opencv下,并重命名为vc14x86。

这里写图片描述

三、配置环境

1、环境变量配置

右击计算机->属性->高级系统设置->高级->环境变量,找到系统变量中的path,点击编辑,添加路径 :

D:\opencv\vc14x86\x86\vc14\bin

这里写图片描述

2、VS2015中配置

第一步:添加好环境变量后,打开VS2015,新建一个空的C++win32控制台工程,并在源文件中添加一个cpp文件,比如:main.cpp;

第二步:打开菜单栏中视图->其他窗口->属性窗口,在属性管理器列表中选择Debug|Win32 -> Microsoft.Cpp.Win32.user,右键点击属性(注意如果之前生成的是x64的,应选择Debug|x64)对属性进行配置;

这里写图片描述

第三步:通用属性 -> VC++目录 ->包含目录中添加

D:\opencv\vc14x86\include

D:\opencv\vc14x86\include\opencv

D:\opencv\vc14x86\include\opencv2

这里写图片描述

第四步:通用属性 -> VC++ 目录 -> 库目录中添加

D:\opencv\vc14x86\x86\vc14\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

这里写图片描述

四、测试

在main.cpp中编写如下代码:

这里写图片描述

设置断点,进入imread函数:

这里写图片描述

五、配置过程中出现的错误

1、错误一

错误一:第一次点击Configure后出现错误提示:“Error in configuration process, project files may be invalid ”

解决方法:在D盘目录下创建新的文件夹MyOpenCV。

这里写图片描述

2、错误二

错误二:在错误一解决后再点击Configure时出现下列错误提示:“CMake Error at CMakeLists.txt:127 (Project): No CMAKE_CXX_COMPILER could be found”。

这是因为默认的编译器是Visual Studio 15 2017, 网上说cmake会自动选择本机已经安装的目标编译器,我就没有改,但点击“finish”后,弹出错误。

解决方法:更改默认的目标编译器,首先点击CMake左上角的File->Delete Cache,把之前选择的清除掉再重新选择。VS2015对应vc14,应该选Visual Studio 14 2015(这里需要注意下,这个版本生成的是x86,网上很多说这个问题的,但当时我也没特别注意,就选的这个编译器。记得有个Visual Studio 14 2015 x64,忘了具体是什么名称,记得有个64,选择那个编译器生成的应该是x64。不过也没关系,生成x86也一样用)

这里写图片描述

3、错误三

错误三:按照别人的参考文章,双击OpenCV.sln后直接F5编译,会弹出这个错误提示:无法启动程序:“D:\MyOpenCV\Debug\ALL_BUILD”,系统找不到指定的文件。

解决方法:点击确定,在CmakeTargets下选择ALL_BUILD,右键单击生成,再选择INSTALL,右键单击生成(具体参考上文步骤)

这里写图片描述

4、错误四

错误四:弹出如下错误提示:“源文件与模块生成时的文件不同。是否希望调试器使用它?”

这里应该是我之前选的都是x64,最后生成的是x86的。

解决方法:点击“是”。

这里写图片描述


原创粉丝点击