网上很多教程刚开始都让切release模式,博主最初因为没找到哪里切换,所以用的默认的debug模式。他们配置方法一样,其区别在于
-
Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息
-
Release:发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的。(调试信息可在单独的PDB文件中生成)。 Release模式下生成一个文件.exe或.dll文件。
具体有兴趣的可以进一步查阅资料。
图里可以看到debug模式下代码正常,切换到release之后如图:
因为release模式下,opencv并未配置。所以这里博主重新配置一遍release模式下的过程。
主要是一下三个操作步骤:
右键项目点击【属性】进入一下页面:
一 opencv配置
1.1、【VC++目录→包含目录】
点击编辑
【新行】→【…】
定位到D:\opencv-4.8.0-windows\opencv\build\include
后点击确定。
添加玩之后如图所示:
1.2、【VC++目录→库目录】
操作和1中类似,区别在于添加的目录地址不一样。
定位到D:\opencv-4.8.0-windows\opencv\build\x64\vc16\lib
点击确定。
1.3、【链接器→输入→附加依赖项】
需要添加opencv_world480.lib
文件的绝对路径地址即D:\opencv-4.8.0-windows\opencv\build\x64\vc16\lib\opencv_world480.lib
。此处大家根据自己的实际路径填写**\opencv\build\x64\vc16\lib\opencv_world480.lib
。
划重点
图里有两个类似的文件opencv_world480.lib
和opencv_world480d.lib
。网上很多教程,有的这里添加的是前者有的是后者。博主被这个坑惨了,这里分享给大家避免踩雷。下图可以看到博主此时是在release模式下,所以对应选择opencv_world480.lib
;如果是debug,则应该选择opencv_world480d.lib
。否则不匹配将会发生如下错误:
这个问题如果排查起来很折磨人!
正确配置好后如下所示:
1.4、测试运行
配置完成后点击项目下【源文件】,右键【添加】→【信件项】后按下图所示新建一个cpp文件,自定义取名。
输入以下测试代码:
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace std; // c++标准库中所有标识符都被定义于一个名为std的namespace中
using namespace cv;
int main()
{
//这里给出自定义目录图片目录
Mat img = imread("E:/6.jpg");
if (img.empty())
{
cout << "该图片读取有问题" << endl;
return 0;
}
imshow("test", img);
waitKey(0);
return 0;
}
再点击下图任一按钮即可运行程序。
二、libtorch配置
明天继续