先说一下其实根本无需修改环境变量等系统设置,只需要对 project 进行一些设置就好。
编译需要的是 .h 文件和 .lib 文件,运行需要的是 .dll 文件,调试需要的是代码源文件和 .pdb 文件。
1. 准备 Open CV 的文件 :
https://opencv.org/releases/
解压到哪里无所谓,我们后面会把需要的文件复制到 Solution 的目录里面。
2. 在 vs 中新建一个空的工程,添加一个 source.cpp,随便加几行代码能跑起来。注意把 Solution Platform 修改为 x64,Debug 或者 Release 都可以。
在 project 的目录下新建两个文件夹“lib”和“include”,如下:(可以忽略那个 bin 文件夹)
3. 添加 lib 文件。
到解压出来的 opencv 文件夹下,opencv\build\x64\vc15\lib ,把这个目录下的两个 .lib 文件复制到上面新建的 lib 文件夹中。这两个 .lib 文件的区别,是Debug模式使用 opencv_world410d.lib,Realease 模式使用 opencv_world410.lib。那个 d 就是Debug 的意思,后面的 .dll 文件同理。
然后修改 project 的设置,使其能够链接这个 .lib 文件。打开 project 的属性页面,按照图里的设置,第一张图填的是 .lib文件的目录,我这里写的是相对路径,第二张图添加的是 .lib 文件名。注意我截图是Release模式,所以填的是 opencv_world410.lib,Debug 模式要用 opencv_world410d.lib。
4. 添加需要的头文件。
还是打开属性页面,按照如下设置:(意思搜索头文件的时候也会到这个目录下去找)
把 opencv\build\include 下面的 opencv2 文件夹复制到之前新建的 include 文件夹下,
把 opencv\sources\include\opencv2\opencv.hpp 文件也复制到 include 文件夹下,最后效果如下
5. 这个时候就可以去写代码了,但是还不能运行。
我这里 source.cpp 的代码如下:
[C++] 纯文本查看 复制代码 #include <cstdio>
#include "opencv.hpp" //opencv 的头文件
using namespace std;
using namespace cv; //opencv 的命名空间
int main()
{
printf("Hello Open CV!");
Mat img = imread("f22.jpg"); //这个图片需要自己准备,放在project目录下,或者直接写绝对路径
imshow("f22", img);//显示图片6秒
waitKey(6000);
return 0;
}
到此为止应该是可以build成功了,如果运行的话会提示少dll,这时候只要把对应的dll文件复制到编译出来的exe文件目录下即可。dll文件为 "opencv\build\x64\vc15\bin\opencv_world410.dll"。debug 模式用那个带 d 的 |