目录
1 引言
断断续续搭建VS code的C++ opencv环境花了三天时间,走了很多弯路,特此记录一下。前不久照着书上配置了qt的opencv环境,顺带着安装了MinGW、cmake,这次配置VS code也需要用到这些软件,跟着别人的博客操作先尝试了使用MinGW作为编译器,但是cmake opencv总是不能成功,后来尝试使用vs自带的编译器mscv,这样就不用编译opencv,但还是不行,就尝试安装vs2019的mscv,可能是因为电脑已经安装了vs2015,导致vs2019的mscv安装失败,最后看评论结合另外的博客安装成功了。
2 环境
Visual Studio Code 最新版
MinGw - 5.3.0
cmake - 3.9.0
3 步骤
3.1 Visual Studio Code 配置
安装 C/C++ 插件(C++ Intellisense 可选)
3.2 openCV 配置
将 opencv-3.4.5-vc14_vc15.exe 解压到 除C盘外的其他盘内(若是C盘,cmake 时很可能报错)
在 opencv\build\x64 路径下新建一个 文件夹(可自起,这里是 MinGW )
3.3 MinGw 配置
win10下的64位系统 建议选择 与图像上一致的选项。
配置环境变量 path
:
新增 C:\Program Files\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0\mingw64\bin
检查是否配置成功:win键 + R
输入 cmd
打开 dos
框, 输入 gcc --version
若出现上诉画面,则配置成功
3.4 cmake 配置
配置环境变量 path
:
新增 C:\Program Files (x86)\cmake-3.9.0-rc3-win64-x64\bin
运行 cmake-3.9.0-rc3-win64-x64\bin\cmake-gui.exe
照下图设置源码地址和编译后保存地址,然后点击 configure
按钮
按照下图所示进行选择
选择 MinGW 中的 C 和 C++ 编译的exe程序
我的路径: C:\Program Files\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0\mingw64\bin
C:gcc.exe
C++ : g++.exe
1.设置完毕点击 Finish,耐心等待进度条读完,直到输出窗口看到 Configuring done。
2.勾选ENABLE_CXX11,和build opencv world(我这里只生成一个dll文件),再次点击 Configure 等待进度条读完。
3.之后点击Generate 等待进度条读完,出现 Generating done。
4.在dos框(windows power shell 也可以)里,利用 cd /d 命令 切换到 D:\opencv\build\x64\MinGW,输入 minGW32-make 命令,这个时候大概花费 40 分钟左右的时间来编译,编译完成之后,
5.输入 minGW32-make install 来完成装载。
6.最后,配置环境变量 path :
新增 D:\opencv\build\x64\MinGW\bin
注意:
1、使用 cmake 时要求安装 python3(版本没有限制,比2高就行),并且python 必须配好了环境变量。
2、如果每一步都是和以上步骤保持一致,还会出错,建议重启电脑(可能是某些环境变量没有立即生效)
4 VS code项目配置
新建一个 VScode 的工作目录文件夹,在文件夹里面新建一个文件夹.vscode,然后在.vscode文件夹里面新建三个文件,分别是
c_cpp_properties.json
launch.json
tasks.json
然后用VS code软件打开文件夹VScode,分别在这三个文件里面写入以下代码,根据自己的配置地址稍做修改。
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/Software/vscode_mingw_opencv/MinGW53/mingw64/x86_64-w64-mingw32/include/c++/",
"D:/Software/vscode_mingw_opencv/opencv/build/x64/MinGW/install/include",
"D:/Software/vscode_mingw_opencv/opencv/build/x64/MinGW/install/include/opencv",
"D:/Software/vscode_mingw_opencv/opencv/build/x64/MinGW/install/include/opencv2"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:/Software/vscode_mingw_opencv/MinGW53/mingw64/bin/gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "opencv3.4.5 debuge",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:\\Software\\vscode_mingw_opencv\\MinGW53\\mingw64\\bin\\gdb.exe",
"preLaunchTask": "g++",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++",
"command": "D:\\Software\\vscode_mingw_opencv\\MinGW53\\mingw64\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-I",
"D:/Software/vscode_mingw_opencv/opencv/build/x64/MinGW/install/include",
"-I",
"D:/Software/vscode_mingw_opencv/opencv/build/x64/MinGW/install/include/opencv",
"-I",
"D:/Software/vscode_mingw_opencv/opencv/build/x64/MinGW/install/include/opencv2",
"-L",
"D:/Software/vscode_mingw_opencv/opencv/build/x64/MinGW/install/x64/mingw/bin",
"-l",
"libopencv_world345",
],
"options": {
"cwd": "D:\\Software\\vscode_mingw_opencv\\MinGW53\\mingw64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
}
5 最后
测试代码打开一张图片
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main()
{
Mat img=imread("D:/VSCode/1.jpg");
imshow("image",img);
waitKey();
return 0;
}