1 下载并安装CMake
安装成功后打开CMake
2 下载opencv 4.1.0并解压
3 使用CMake构建vs 2017 项目
- 在CMake中填入源代码路径、构建的二进制文件存放路径(可自己新建)
- 注意:放置源代码的路径中不要出现中文,否则后期编译时会导致出错。因为中文显示乱码,导致程序在调用该路径下的文件时会提示”找不到该文件”
- 单击左下角Configure
- 根据自己的CPU型号、编译器版本进行选择,然后点击finish
- 等待进度条走完。
- 第一次配置后,出现红色区域。再次点击配置,
- 第二次配置,红色区域消失。(如果第二次红色区域仍然存在,需要查看错误原因,具体问题具体分析。可以尝试再次配置)
看到Configuring done即可进行下一步
点击Generate,生成解决方案,该方案是针对IDE的一个项目文件。
4 在vs 2017中对项目进行编译
- 打开项目的输出文件夹,找到OpenCV.sln,双击打开,即可在vs 2017中查看项目。
如图
4.1 生成项目文件,在CMakeTargets文件夹中的ALL_BUILD,右键“生成”
可以看到正在编译生成项目文件
注意:编译过程中留意输出信息,warning可以忽略,如果出现Error需要及时排除错误,否则最后得到的opencv可能出问题。
发现问题
原因:未安装python debug版本
解决方法:我的计算机中已经有anaconda,本来想通过conda安装,但是没有找到方法。
于是去python官网:https://www.python.org/downloads/windows/ 下载python安装程序
双击运行,
查看系统环境变量,发现安装过程中,安装程序已经自动配置好了环境变量,但是还需要将python37_d.lib所在文件夹的路径配置到环境变量中。
在项目下的bindings文件夹中的opencv_python3中配置python37_d.lib路径
注:重启一下电脑会更好些。
然后删除现有的项目文件
在CMake的“File->delete cache”删除缓存
重新配置、生成项目文件
重新右键ALL_BULD,生成,编译运行项目。
成功后在这两个路径下可以看到生成的动态链接库文件
D:\main\opencv\build\bin\Debug
D:\main\opencv\build\lib\Debug
4.2 右键“CMakeTargets/INSTALL”,选择生成(Build)
将所有的头文件和库文件集中到一起,便于管理和使用。
完成之后,将在以下目录看到库文件:
D:\main\opencv\build\install\x64\vc15\bin
D:\main\opencv\build\install\x64\vc15\lib
将debug模式改为release模式,重复步骤4.1、4.2
5 配置opencv和vs 2017
5.1 将opencv添加到系统环境变量
D:\main\opencv\build\install\x64\vc15\bin
5.2 在VS 2017 中配置opencv
1新建空项目
其实配置选择什么跟64位还是32位系统没有直接的关系,而是在于在编译程序时是使用哪个编译器。编译器选的是Win32,就用x86;编译器选的是x64,就用×64。
这里我选择编译器为X64
修改为X64
右键点击“项目”,“属性”
在视图–>属性管理器 中进行配置后,将会一直生效。
在项目–>属性中进行配置,仅在本项目内有效。
需要配置的内容都是一样的
这里我选择第一种方式
2 在C/C+±–>常规中加入
D:\opencv\build\include;D:\opencv\build\include\opencv2;
3 在包含目录中加入
D:\main\opencv\build\include;D:\main\opencv\build\include\opencv2
4 在库目录中加入
D:\main\opencv\build\x64\vc15\lib
关于是选择VC 14还是VC 15,这需要根据你使用的VS 版本而定。
vcl0表示vS2010,如果是其他版本的visual studio,稍微要微调一下。其中:vc8等同于Visual Studio 2005,vc9等同于Visual Studio 2008,vc10等同于Visual Studio 2010,vcl1等同于Visual Studio 2012,vc12等同于Visual Studio 2013,后续版本以此类推。
5 在连接器->输入–附加依赖项中加入
D:\main\opencv\build\x64\vc15\lib\opencv_world410d.lib
OK!
参考资料
缺失python debug版本导致出错
https://blog.youkuaiyun.com/weixin_43788499/article/details/84933210
https://blog.youkuaiyun.com/dkink/article/details/4787686
OpenCV安装流程及从源码编译方法 + 配置VS
https://blog.youkuaiyun.com/jayoungo/article/details/81032253