1,参考博文
Win7x64+VS2012+OpenCV2.4.3+CMake2.8.10+TBB41重编译OpenCV
【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
opencv在vs2012下重编译详细教程——解决按f11进入不了源代码
感谢前人的帮助,自己使用的软件版本和各博主的不完全一致,不同的软件版本重编译,配置方法并不一致,因此要兼听则明。在操作过程中肯定会出现和博客中不一致的情况,要多使用搜索引擎,参考他人的解决办法。
2,工具
-
cmake3.5.0
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
-
OpenCV2.4.10
-
visual studio 2010
-
注意:新版本不需要TBB
3,重编译目的,流程
现阶段主要是在调试的时候直接F11查看OpenCV源代码。利用官方编译好的动态链接库也可以完成OpenCV所有功能,但是不能方便的查看源代码,所以需要在本地编译生成链接库。
主要流程:
-
Cmake编译OpenCV源代码,生成visual studio C++下的解决方案(标准的构建档,还需要根据平台进一步编译)。
-
利用visual studio进一步编译成具体的二进制生成文件,如dll,lib。
-
在visual studio中配置生成的OpenCV库文件。
4,Cmake编译OpenCV源代码,生成visual studio C++下的解决方案
参考上述任一篇博文即可,不再赘述。
需要注意的地方:
-
Cmake选择源代码的路径,定位到CMakeLists.txt所在的文件夹。第一篇博文OpenCV2.4.3直接选择到D:/Program Files/opencv根目录,而后续包括本文用的OpenCV2.4.10都是定位到D:Program Filesopencvsources文件夹。不同版本CMakeLists.txt所在位置不同。
-
编译平台的选择,根据自己的VS版本需要选择默认的Win32或者Win64(x64)平台。
-
两次点击Configure,再次点击Generate生成项目工程。
5,利用visual studio进一步编译成具体的二进制生成文件
打开OpenCV.sln工程,注意不要着急生成。
点击Win32旁边的下拉菜单,打开配置管理器,默认情况下,IANSTALL项目是没打勾的,一定记得打上,不然待会配置时怎么都找不到install这个文件夹,也就找不到include,opencv,opencv2,然后右键ALL_BUILD,点击生成。
如果没打勾已经生成了文件,只需要重新把勾打上,然后重新生成解决方案。
Debug切换到Release模式下,重新打勾生成。
6,在visual studio中配置生成的OpenCV库文件
(1),配置环境变量
Path下两个路径D:Program Filesopencv2410opencvvc10solutioninDebug;D:Program Filesopencv2410opencvvc10solutioninRelease(本人刚才生成的解决方案目录文件,$解决方案$inDebug...Release)
(2),添加新的属性表
属性管理器中,添加新的项目属性表,命好名并保存下来。Debug和Release的附加依赖项会冲突,所以Debug和Release不能用同一个属性表。
Debug:
VC++目录>包含目录:D:Program Filesopencv2410opencvvc10solutioninstallinclude
D:Program Filesopencv2410opencvvc10solutioninstallincludeopencv
D:Program Filesopencv2410opencvvc10solutioninstallincludeopencv2
VC++目录>库目录:D:Program Filesopencv2410opencvvc10solutionlibDebug
链接器>输入>附加依赖项:
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib
Debug:
VC++目录>包含目录:D:Program Filesopencv2410opencvvc10solutioninstallinclude
D:Program Filesopencv2410opencvvc10solutioninstallincludeopencv
D:Program Filesopencv2410opencvvc10solutioninstallincludeopencv2
VC++目录>库目录:D:Program Filesopencv2410opencvvc10solutionlibRelease
链接器>输入>附加依赖项:
opencv_calib3d2410.lib
opencv_contrib2410.lib
opencv_core2410.lib
opencv_features2d2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_nonfree2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_videostab2410.lib