vscode链接OpenCV

VScode配置


最近在学习计算机图形学课程games101,课程是很好。课程提供了虚拟机以保证统一的环境,但是我最初觉得虚拟机还是太占内存了,就头铁的打算用VScode直接自己配置环境。不料,遇到了特别多的坑。反复折腾了几天终于搞定了环境配置。于是写下这篇博客做个记录。
注:本博客仅讨论windows系统。默认你已经了解如何使用VScode编写基础c++代码。


下载OpenCV

games101的作业中使用OpenCV作为图像库,所以需要下载配置OpenCV。不过如果下载OpenCV的源码需要自己使用mingw编译。这一部分确实很麻烦,编译过程中还需要科学上网。所以我建议下载别人编译好的OpenCV,缺点是版本会落后一些。

下载OpenCV的.zip文件,自行解压

我使用的是OpenCV-4.5.2-x64,如果使用其他版本失败可以试试这个。

此链接直接下载OpenCV-4.5.2-x64.zip


配置系统变量

这一步可以上网搜一下,很简单。
可以新建一个变量,如OpenCV_Dll之类的。路径就是D:\cpp_lib\OpenCV4.5.2\x64\mingw\bi
(用你自己的路径,这里只做演示)
然后编辑系统变量里的PATH,有些人是Path,添加%OpenCV_Dll%,和上面取得对应。


编辑配置文件

launch.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false, // 这里设置为 true 则在新窗口中运行程序, false 则在终端中运行程序
"MIMode": "gdb",
"miDebuggerPath": "C:\\mingw\\mingw64\\bin\\gdb.exe", // 这里填写你的 gdb 路径
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "g++"
}
]
}

c_ cpp_ properties.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/cpp_lib/eigen-3.4.0", // 你的头文件路径
"${workspaceFolder}", // 这个路径用于让VSCode识别你工作区的头文件
"D:/cpp_lib/OpenCV4.5.2/include" // 你的头文件路径
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.22621.0",
"compilerPath": "C:/mingw/mingw64/bin/g++.exe",// 你的编译器路径
"cStandard": "c17",
"cppStandard": "c++17",// 你的编译器版本,这里至少要设置为c++11
"intelliSenseMode": "gcc-x64"// 你的编译器类型
}
],
"version": 4
}

tasks.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
"tasks": [
{
"type": "process", // 编译任务类型
"label": "g++", // 任务名称和launch.json中的preLaunchTask的名称一致
"command": "C:\\mingw\\mingw64\\bin\\g++.exe",// 编译器路径
"args": [
"-fdiagnostics-color=always", // 显示编译过程中的错误信息
"-g",
"${fileDirname}/*.cpp", // 编译的文件,你窗口打开的文件的文件夹下的所有cpp文件,对于单个文件编译,可以用${file}代替。
"-I","D:/cpp_lib/eigen-3.4.0",
"-I", "D:/cpp_lib/OpenCV4.5.2/include", // 包含路径 头文件 编译的时候到这个路径下找头文件 编译审生成可重定位文件
"-L", "D:/cpp_lib/OpenCV4.5.2/x64/mingw/bin", // 库路径 动态链接库地址,可执行文件运行起来需要这些库提供的机器码
// "-l","libopencv_world4100", // 链接需要使用这些dll作为可重定位文件
"-l","libopencv_calib3d452", // 链接需要使用这些dll作为可重定位文件
"-l","libopencv_photo452", // 不同版本的OpenCV的dll文件名可能不同,需要根据实际情况修改
"-l","libopencv_core452",
"-l","libopencv_stitching452",
"-l","libopencv_dnn452",
"-l","libopencv_video452",
"-l","libopencv_features2d452",
"-l","libopencv_videoio452",
"-l","libopencv_flann452",
"-l","libopencv_gapi452",
"-l","libopencv_highgui452",
"-l","libopencv_imgcodecs452",
"-l","libopencv_imgproc452",
"-l","libopencv_ml452",
"-l","opencv_videoio_ffmpeg452_64",
"-l","libopencv_objdetect452",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe" // 输出文件名
],
"options": {
"cwd": "C:\\mingw\\mingw64\\bin" // 编译器工作目录
},
"problemMatcher": [
"$gcc" // 编译器错误匹配器
],
"group": {
"kind": "build",
"isDefault": true
},

"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}