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的。
解决方法:点击“是”。
- Win7 64位 + VS2015 +Opencv3.3.0重编译
- Win7 64位+VS2015+Opencv3.3.0安装配置
- opencv3.0+VS2015+64位win7配置
- win7+vs2015+opencv3.1(64位)
- cmake3.7编译VS2015+opencv3.2的第三方库中dnn库(win7系统64位)
- cmake3.7编译VS2015+opencv3.2的第三方库中dnn库(win7系统64位)
- win7 64位操作系统 VS2015下配置OpenCV3.2.0教程
- (一)OpenCV3.3.0安装配置(opencv3.3.0+VS2015社区版+64位win7)(转)
- vs2015编译opencv2.4.10和opencv3.10源码(64位)
- Cmake3.10.0+64位win10+vs2015配置OpenCv3.3.0
- Win10 64位+VS2015+Opencv3.3.0安装配置
- win7 vs2015环境 GDAL2.0.1 64位 编译解决
- 编译easyPR(Win7 64位 OpenCV3.2)
- opencv3.1.0+win7+64bit +vs2015配置
- opencv3.0+vs2015+win7
- opencv3.3.0+vs2015+cmake编译opencv x86
- 编译并使用boost库(win7+boost1.63+vs2015+32位or 64位)
- 编译并使用boost库(win7+boost1.63+vs2015+32位or 64位)
- mysql允许远程连接
- 计数排序算法
- C++ 快排算法
- 在Ubuntu 16.04 上搭建Hyperledger Fabric 1.0
- python多版本环境搭建 和 hello word 程序
- Win7 64位 + VS2015 +Opencv3.3.0重编译
- STL源码剖析——内存空间管理
- H5 游戏 俄罗斯方块 双人互动游戏
- Linux 2.x 内核对内存的管理
- 深度学习系统搭建(Ubuntu14.04+cuda8.0+cudnn6.0+tensorflow1.3+opencv+pycharm)
- 【机器学习笔记】SVM part2: 核函数与SMO算法
- chaincode开发
- git对submodule多模块的tag操作(并同步到远程分支)
- 从http到https再到hsts