为vscode配置opencv、c++环境
vscode需求
- 安装C/C++扩展
cl.exe设置
第一种方法 从VS的Developer Command Prompt启动vscode
官方推荐从Developer Command Prompt启动vscode。这样不需要额外设置环境变量就能正常使用cl命令编译cpp文件。见此处
而Developer Command Prompt一般有四个,分别对应x86_x64平台,x86平台,x64平台,x64_x86平台
我用的opencv是64位版,所以这里用x86_64的,对应vs2017中的x64配置,
第二种方法 设置环境变量
lib变量
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64
X:\Program Files\VS2017\2017\Professional\VC\Tools\MSVC\14.16.27023\lib\x64
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
include变量
X:\Program Files\VS2017\2017\Professional\VC\Tools\MSVC\14.16.27023\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt
Path中加入
X:\Program Files\VS2017\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64
以上变量的加入最好上移到其他版本vs的变量之上。
这种方法的效果是,无论powershell还是cmd打开之后都能作为x86_x64的Developer Command Prompt使用
示例(第二种方法配置测试可行):
文件夹结构:
|--workdir //即工作文件夹
|-- main.cpp //主程序
|-- .vscode //vscode配置文件夹
|-- c_cpp_properties.json //设置包含目录以查找头文件
|-- tasks.json //设置编译时所需的头文件、库文件
|-- launch.json //调试必需的文件
测试主程序:
#include<iostream>
using namespace std;
#include <opencv2/opencv.hpp>
int main()
{
cout<<"Hey"<<endl;
cv::Mat img0 = cv::imread("./material.bmp");//代码同一文件夹下的图片名
cv::imshow("test0",img0);
cv::waitKey(0);
return 0;
}
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/Libs/opencv4.1.0/include",
"D:/Libs/opencv4.1.0/include/opencv2"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "F:/Program Files/VS2017/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x64/cl.exe",
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}",
"/I",
"D:/Libs/opencv4.1.0/include",
"/I",
"D:/Libs/opencv4.1.0/include/opencv2",
"/link",
"D:/Libs/opencv4.1.0/x64/vc15/lib/opencv_world410.lib"
],
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
}
launch.json
{
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "cl.exe build and debug active file",
"type": "cppvsdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "cl.exe build active file"
}
]
}