这是我第一次在号称宇宙最强的IDE Visual Studio上调用非标准库编译`C++`程序,中间遇到了很多的报错,让我怀疑人生。
首先,我们需要从[Sourceforge](http://sourceforge.net/projects/opencvlibrary/files/opencv-win/)下载OpenCV, 目前最新版是4.5.2

下载的exe文件双击之后会出现解压界面

解压缩后得到如下文件

我们需要依次系统属性->高级->环境变量,找到并设置设置环境变量Path

如果不在环境变量中设置opencv中的bin路径,会出现如下报错 【由于找不到opencv_world452d.dll, 无法继续执行代码】

在Visual Studio 2019中使用OpenCV构建项目的流程如下
第一步:新建一个C++的控制台项目。

第二步:配置项目的项目名称,例如opencv-test

创建项目之后,先将Debug 改为x64,因为后续构建的是x64的项目。

第三步:为了能让代码正常运行,我们需要配置这个OpenCV项目的所需的include和library路径,以及依赖的lib文件。
在菜单栏的项目(P)中选择属性(P)

选择VC++目录(VC++ Directories)的包含目录(Include Directories),点击编辑

添加opencv的include的路径(头文件)

同样的操作,也用于库目录(Library Directories)的设置

添加library路径(路径比较深)

检查下,刚刚修改的include和library

此外还需要增加一个包括所有模块的lib文件。选择链接器(linker)中的输入(input), 接着编辑附加依赖项

如果不设置该变量,会出现【无法解析外部符号】的报错

如果写错成 opencv_world452d.dll,就会出现【 LNK1104 无法打开文件"opencv_world452d.dll"】报错(之所以写成dll,是因为之前出现的dll找不到报错,导致我以为增加的是这个文件)。
如下是测试代码
```c++
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image = Mat::zeros(600, 600, CV_8UC3);
putText(image, "xuzhougeng", Point(100,300), FONT_HERSHEY_COMPLEX, 2.0, Scalar(100,200,200 ), 5 );
imshow("Display Window", image);
waitKey(0);
return 0;
}
```
能正常出图表示能正确在项目中调用OpenCV。
参考资料:
- [https://docs.opencv.org/master/d3/d52/tutorial_windows_install.html](https://docs.opencv.org/master/d3/d52/tutorial_windows_install.html)
- [https://medium.com/@subwaymatch/opencv-410-with-vs-2019-3d0bc0c81d96](https://medium.com/@subwaymatch/opencv-410-with-vs-2019-3d0bc0c81d96)

如何在Visual Studio上配置OpenCV 4.5.2用于C++项目开发