VS2019+OpenCV4.5.0+VC15超详细配置问题
写在前面的话
- 版权声明:转载请注明出处!
- 博主是一个小菜鸟,并且非常玻璃心!如果文中有什么问题,请友好地指出来,博主查证后会进行更正。
- 每篇文章都是博主现阶段的理解,如果理解的更深入的话,博主会不定时更新文章。
- 本文初次更新时间:2021.08.01,最后更新时间:2021.08.01。
本文是博主的第一篇文章,每次配置OpenCV都会遇见各种各样的问题,查阅大量教程才能配置成功,浪费大量时间和心情,考虑到网友也会遇见类似的问题,故有了这篇文章。本文适合各种版本VS和OpenCV配置问题,也提供了程序常见问题的解决方法,希望对大家有所帮助。
1.VS+VC+OpenCV版本对应关系
- C是VS的工作库之一,VS与OpenCV对VC都有版本间的对应。
- VS(virtual studio)是微软开发的一个集成开发工具,可以开发C++、C#、HTML、VB等。
- VC(virtual C++)是专门开发C++的工具。当安装VS的时候,会提示你选择开发环境,如果你选择C++,选择的就是VC编程平台。
参考网址1:https://www.cnblogs.com/sakuraie/p/13341552.html.
参考网址2:https://blog.csdn.net/HW140701/article/details/92850154.
以下是VS版本与VC版本的对应关系,以及OpenCV对VC版本的支持情况:
像OpenCV之类的库会以vcx.x作为文件夹号标致该文件夹下的库适用于哪个VS版本,例如:VS2017选择OpenCV下的vc15文件夹,vc15可由Opencv3.4.1或4.0.0提供 。
2.官方链接
VS官网:https://visualstudio.microsoft.com/zh-hans/. VS历史版本:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/. OpenCV官网:https://opencv.org/. OpenCV历史版本:https://opencv.org/releases/.
3.相关环境信息
- Windows 10专业版
- OpenCV 4.5.0 —vc14 vc15(免费)
下载网址:https://sourceforge.net/projects/opencvlibrary/files/4.5.0/opencv-4.5.0-vc14_vc15.exe/download.
- Visual studio 2019 community—vc15 vc16(免费)
下载网址:https://visualstudio.microsoft.com/zh-hans/vs/.
故我们使用Visual studio 2019 community 配置OpenCV 4.5.0下 的vc15 库。
4.图片步骤
首先 通过上述“1 VS+VC+OpenCV版本对应关系”选择配对的OpenCV和VS,其次 通过上述“2官方链接”下载相应的软件安装包,最后 安装激活后可直接参考下述图片配置环境。
步骤1:安装VS2019和OpenCV4.5.0 步骤2:设置系统变量后重启电脑 步骤3:拷贝dll文件(将bin文件夹下的三个dll文件分别拷贝至对应文件夹) 步骤4:创建C++空项目 步骤5:添加Debug X64模式cpp文件 步骤6:添加Debug X64模式的属性文件(此属性用于其他项目的配置) 步骤7:双击新建的属性表,添加包含目录(#include的设置) 步骤8:添加库目录(包含文件的源代码) 步骤9:添加附加依赖项(库文件的依赖) 步骤10:编写显示图片的源码测试 附源码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main()
{
Mat img = imread("lena01.jpg");
imshow("lena01 Viewer", img);
waitKey(0);
}
5.详细步骤
建议:良好的命名习惯 有时很有帮助,建议务必将计算机名、用户名、文件夹名等全部命名为英文字符 。
5.1 安装VS和OpenCV
- 通过上述“1 VS+VC+OpenCV版本对应关系”选择配对的OpenCV和VS,我们使用Visual studio 2019 community版本配置OpenCV 4.5.0下的vc15库;
- 通过上述“2官方链接”下载相应的软件安装包;
- 安装激活。
5.2 设置系统变量
- 此电脑-右键-属性-高级系统设置-高级-环境变量-系统变量中的path变量
也有教程选择用户变量下的path,笔者建议选择系统变量 -编辑-新建-浏览,将OpenCV安装文件夹下的***opencv\build\x64\vc15\bin 和***opencv\build\x64\vc15\lib 路径添加到当中。
注意:在其他配置教程中一般不用添加***opencv\build\x64\vc15\lib 路径,读者可自行决定添加与否,但为了防止出问题建议添加;
- 作者选择vc15子文件夹,因为VS2019对应vc15或vc16;
- 路径添加后点击确定,并将外面能点击确定的地方全部点击。
5.3 拷贝dll文件
注意:网上很多配置教程没有这步,运行程序时可能会报找不到xxx.dll文件 的错误,是因为没有将OpenCV里面的相关dll文件复制到C盘中的相应文件夹里。
- 将
***opencv\build\x64\vc15\bin 路径文件目录下的opencv_world401.dll和opencv_world401d.dll文件复制到C:\Windows\SysWOW64 这个文件夹里; 将***opencv\build\x64\vc15\bin 路径文件目录下的opencv_ffmpeg401_64.dll和opencv_world401d.dll文件复制到C:\Windows\System32 这个文件夹里。如果是opencv其他的版本,把对应的dll文件移动到上述两个C盘文件夹即可; C:\Windows\SysWOW64 对应32位文件操作,C:\Windows\System32 对应64位文件操作,如果运行程序错误,可能是文件错误拷贝。
5.4 新建项目
- 创建新项目,笔者创建的是C++空项目,命名;
- 添加
Debug X64 的cpp文件,该文件用于显示图像测试OpenCV是否配置成功。
5.5新建属性文件
- 菜单栏 -视图 -其他窗口 -打开属性管理器 -选择属性管理器中的Debug|x64 -右键 -添加新项目属性表 -命名 -添加 。
建议:命名 务必使用有意义的英文字符,例如:win10_vs2019community_opencv450_Debug_x64 ,表示Windows10专业版系统下安装的vs2019community版本配置opencv4.5.0开源库,使用的Debug_x64模式。
5.6配置属性
- 双击新建的属性表- VC++目录 -包含目录 /库目录 -添加下列目录 :
包含目录:
***opencv\build\include
***opencv\build\include\opencv2
注意:在源代码中经常出现#include <opencv2/opencv.hpp> 字样,其含义就是预编译包含目录***opencv\build\include\opencv2 中的opencv.hpp 文件。同理可以预编译其他xxx.hpp,例如:
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgproc/types_c.h>
#include <opencv2/calib3d/calib3d.hpp>
作为OpenCV学习者,应该养成定期阅读学习这些文件的习惯,或者访问在线帮助文档(https://docs.opencv.org/4.5.0/index.html),这是最直接最暴力学习OpenCV的两种方法。 库目录:
***opencv\build\x64\vc15\lib
2.链接器 -输入 -附加依赖项 -添加下列文件 : 附加依赖项:
***opencv\build\x64\vc15\lib\opencv_world450d.lib
***opencv\build\x64\vc15\lib\opencv_world450.lib<可选>
或者:
opencv_world450d.lib
opencv_world450.lib<可选>
注意:450 表示opencv4.5.0 ,d 表示是否为Debug调试 <含d表示Debug,否则表示release>, release是发布程序时才会用到。当配置Release|X64 时,附加依赖项添加opencv_world450.lib ,笔者为了省事才一次添加两种,故上述加了<可选>标志,但两者一同添加可能导致一些错误。
5.7勾选微软符号服务器<可选>
1.其实到上述步骤OpenCV已经配置完成,但VS2019总是报错缺少xxx.dll文件 ,可选择勾选微软符号服务器 来下载缺失的dll文件。
参考网址3:https://blog.csdn.net/weixin_43042467/article/details/105240489. 菜单栏 -调试 -选项 -调试 -常规 -勾选启动源服务器支持 ; 菜单栏 -调试 -选项 -调试 -符号 -勾选微软符号服务器 -在次目录下缓存符号<可选> 。
- 注意:可用一个文件夹来缓存下载的dll文件,只初次加载。或者也可以等加载完成之后,取消勾选之前的选择,也没有问题。笔者新建了一个文件夹用于下载缓存,后面发现文件夹中下载了很多pdb文件!
- 到上述所有工作opencv已经配置完成,注意解决方案平台那一栏要换成Debug | X64(因为我们一直都在配置Debug | X64)。
5.8测试图像
- 附源码:
#include<opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main()
{
Mat img = imread("C:\\Users\\clchao\\Desktop\\opencvText_win10_vs2019_opencv410_Debug_x64\\imageShowOpencv\\lena01.jpg");
imshow("lena01 Viewer", img);
waitKey(0);
}
- 附“lena01.jpg”图像:注意图片存放路径。
- 图片无法输出问题:读入图片错误(附两种方式)
(1)绝对路径
Mat img = imread("C:\\Users\\clchao\\Desktop\\opencvText_win10_vs2019_opencv410_Debug_x64\\imageShowOpencv\\lena01.jpg");
注意这个地方是双斜杠 ,第一个斜杠是转义字符。 (2)图片路径
Mat img = imread("lena01.jpg");
注意lena01.jpg必须在所建工程目录下
6.配置文件
- 配置完成后在自己新建的项目目录下会出现一个
xxx.props 文件,该文件便是配置的OpenCV属性。
以后每次编写OpenCV程序,只需要属性管理器 -Debbug | X64 -右键 -添加现有属性表 -选择上述属性表xxx.props文件即可 。
7其他问题
“丢失xxx.dll文件或找不到xxx.dll文件”问题
将bin目录下对应的xxx.dll文件复制到Debug目录下;
或安装OpenCV时即将所有xxx.dll 文件复制到C:\Windows\System32 目录。
确实找不到xxx.dll文件,可下载Everything 工具检索相应文件。
System32文件夹 :System32是Windows 操作系统的系统文件夹,是操作系统的中枢。包含了大量用于 Windows 的文件, 这里主要用于存储xxx.dll文件、 控制面板小程序(.CPL)、设备驱动 (.drv)、帮助文件 (.hlp 和 .cnt)、MS-DOS 工具 (.com)、语言支持文件 (.nls)、屏幕保护 (.scr)、安装信息文件 (.inf)以及其它用于支持、配置或操作的文件。如果你配置X64,请将相应文件拷贝至此处。 参考4:https://blog.csdn.net/qq_44179564/article/details/109706780
针对0xc000007b问题,DirectX Repair修复工具(请支持原作者) 链接: DirectX修复工具增强版. 链接: 0xc000007b的解决办法(续).
参考文章
|