简述
近期在学习opencv的使用,在进行多文件编写时遇到了诸多问题,在查阅众多博客之后,问题一个一个解决了,用这篇文章记录下我的解决方法,希望可以为你提供一定的帮助。(新手拙见,欢迎批评指正)。
创建项目并编写代码。我的项目文件结构如下
1、 launch.json文件
在创建项目之后,点击左侧任务栏的第四个选项 运行与调试 ,点击右侧蓝色字 创建launch.json文件,完成launch.json文件的创建。
点击右下角的添加配置,选择 C/C++:(gdb) 启动
在launch.json中,我们需要修改的只有几个地方,我将代码贴在下方。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/main",
//"program": "输入程序名称,例如 ${workspaceFolder}/a.out",(修改前)
//此处表示程序编译build后生成的文件路径和名字(此处可执行文件名为a.out)
//路径和名字都可以自定义
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
//在此处添加一行代码,这里的main应该与上方的program中的可执行文件名相同
"preLaunchTask":"main"
}
]
}
注意,program中的可执行文件名可以自定义,不过要与下方添加的“prelaunchTask"后的文件名一致,与task.json中的"label"关键字的名字相同,最好与”agrs“关键字生成的可执行文件名字相同,避免一些不必要的错误。
修改完成的launch.json文件截图如下:
到此,launch.json文件编写完成。
2、task.json文件
按下 ctrl + shift + p,输入Tasks:Configure Default Build Task,选择配置默认生成任务,再选择g++生成活动文件。
生成的task.json文件如下:
在这个文件中,我们需要修改的是label和args。
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "main",
//此处改为与program的可执行文件同名
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
//此处为.cpp文件的路径和名称,大家根据自己的项目自行修改
"-g",
"${workspaceFolder}/src/main.cpp",
"${workspaceFolder}/src/demo1.cpp",
//此处的include是我放置自定义头文件的路径
"-I",
"${workspaceFolder}/include/",
//此处为我的opencv2的安装路径,大家自行修改
"-I",
"usr/文档/opencv-3.4.14/include/opencv2",
//生成可执行文件的路径和名称,与launch.json中的programe相同
"-o",
"${fileDirname}/main",
//指向opencv的库
"`pkg-config --cflags --libs opencv`"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "编译器: /usr/bin/g++"
}
]
}
到此,task.json 文件也编写完成。可以在vscode中运行和调试了。
本文参考自:VScode 调试教程 tasks.json和launch.json的设置(超详细)_BillySturate的博客-CSDN博客_launch.json
g++编译使用到opencv: undefined reference to `cv::String::deallocate(),_Briwisdom的博客-CSDN博客 vscode 配置OpenCV编译环境 (ubuntu)_小帆别吃糖的博客-CSDN博客_ubuntu vscode配置opencv
Ubuntu下VSCode调试C++程序以及opencv库和Qt5库_jiaken2660的博客-CSDN博客 文章来源:https://www.toymoban.com/news/detail-627294.html
新手拙见,不足之处,欢迎批评指正。文章来源地址https://www.toymoban.com/news/detail-627294.html
到了这里,关于ubuntu + VScode + C++ + openCV 运行调试launch.json和task.json编写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!