配置编译环境和开发环境
编译环境
新建文件夹 test
mkdir test
打开VScode
新建文件 test.cpp
编写一端包含opencv的调试代码
eg:
#include <iostream>
#include <opencv4/opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
return 0;
}
按 F5 运行程序,会提示选择环境。
依次选择
C++(GDB/LLDB)
g++ - Build and debug active file
然后在左边会生成一个 .vscode 文件夹,里面包含 launch.json 和 tasks.json 两个文件
launch.json 文件修改如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",//程序文件路径
"args": [],//程序运行需要传入的参数
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": true,//是否为调试对象启动控制台
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ 生成活动文件",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
tasks.json 文件修改如下
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ 生成活动文件",//与launch.json文件里的preLaunchTask的内容保持一致
"command": "/usr/bin/g++",
"args": [
//"-fdiagnostics-color=always",
"-std=c++11",
"-g",
//"${file}",//编译单个文件
"${fileDirname}/*.cpp",//编译多个文件
"-o",
"${fileDirname}/${fileBasenameNoExtension}",//输出文件路径
//头文件路径
"-I","${workspaceFolder}/",
"-I","/usr/local/include/",
"-I","/usr/local/include/opencv4/",
"-I","/usr/local/include/opencv4/opencv2",
//库文件路径
"-L","/usr/local/lib",
//opencv的lib库
"/usr/local/lib/libopencv_*",
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
注: 其中label的值必须与launch.json中preLaunchTask的值一样
此时再按 F5 程序可以正常编译执行
开发环境
按下
Crtl+Shift+P
打开命令面板
选择
C/C++:Edit Configurations(JSON)
会在左侧 .vscode 文件夹里生成 c_cpp_properties.json 文件
c_cpp_properties.json 文件修改如下
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include",
"/usr/local/include/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11", //C++11版本
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
这个文件将opencv的头文件所在路径和函数库路径告诉编译器
参考:
https://blog.csdn.net/weixin_43374723/article/details/84064644
https://zhuanlan.zhihu.com/p/363035298
https://blog.csdn.net/formaever/article/details/120497371