ubuntu + VScode + C++ + openCV 运行调试launch.json和task.json编写

简述

近期在学习opencv的使用,在进行多文件编写时遇到了诸多问题,在查阅众多博客之后,问题一个一个解决了,用这篇文章记录下我的解决方法,希望可以为你提供一定的帮助。(新手拙见,欢迎批评指正)。

创建项目并编写代码。我的项目文件结构如下

16a52566ad464aa9ad3fba321f686c95.png570fd6240fb14ca79fdf97a869036cf2.png

1、 launch.json文件

4d055a9652f343a29ba443f08fa4db81.png

 在创建项目之后,点击左侧任务栏的第四个选项 运行与调试 ,点击右侧蓝色字 创建launch.json文件,完成launch.json文件的创建。

226847784a284226ab518c26b24c1c5f.png

点击右下角的添加配置,选择 C/C++:(gdb) 启动

1c7164c3c5474f9f8c7db90f0c00c74a.png

在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文件截图如下:

55ed590778c44236ab768a80a830fbfa.png

 到此,launch.json文件编写完成。

2、task.json文件

按下 ctrl + shift + p,输入Tasks:Configure Default Build Task,选择配置默认生成任务,再选择g++生成活动文件。

1b061e32e22c4dd4b3c5bf00cbb5c48b.jpg

934ab703ff7e4cf3bea747a369ab47c1.jpg

生成的task.json文件如下:ae324e15defa482d9681ca4b7178fe48.png

在这个文件中,我们需要修改的是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博客 

新手拙见,不足之处,欢迎批评指正。

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值