实战|C++在vscode上的调试配置
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
⽬标
按照本⽂的流程可在vscode平台上实现像在windows系统下VS调试C++程序的效果。本⽂旨在让刚接触vscode却⼜不知如何 debug的童鞋能够快速搭建⾃⼰的编程环境,使更多的精⼒focus在coding或algrithm上,若有错误的地⽅,欢迎指正和交流。废话不多说,下⾯我们就开始吧!
环境与安装
本⽂的配置环境是ubuntu16.04。⾸先我们先到Visual Studio Code的官⽅⽹站下载.deb⽂件,以下直接给出⽹址:
https://code.visualstudio.com/
进⼊官⽅后是这个样⼦的:
对,没错,直接点击那个.deb⽂件即可,你的浏览器这个时候应该会⾃动下载,请耐⼼等候:
下载完成之后直接安装.deb⽂件:
sudo dpkg -i code_VERSION_amd64.deb
运⾏与插件
安装完成之后,可以按下左上⾓的搜索菜单,输⼊code,可以找到vscode,左键点击即可进⼊。为了⽅便,可⽤⿏标按住图标拖 动到任务栏,这样以后直接点击图标就能打开:
当 然最⽅便的还是⽤终端打开,可以打开任意路径下的⽂件夹:
code ./YOUR/WORKSPACE/PATH
打开之后,该⽬录下的所有⽂件和⽂件夹都在左侧:
在调试程序之前还需要安装⼀些vscode的插件,操作⾮常简单快捷。直接点击左侧第五个按钮,在⾥⾯搜索⼀些⽀持C++的插件,⽐如下图中的C/C++,C++ Intellisense,直接搜索插件名字后点下载就会⾃动安装,安装完了就会在下图的ENABLED列表⾥了。
这⾥推荐使⽤⼀个使⽤的括号显⽰插件:Bracket Pair Colorizer,在代码中括号很多的时候,不同的括号对⽤不同颜⾊区分,并且在代码很⻓的时候,点击某个括号可显⽰与其配对的括号,如下图:
调试配置
当写好代码和CMakeLists.txt之后,点击左侧Run and Debug按钮(⻓得像个⾍⼦),点击create a launch.json file,创建⼀个叫launch.json的⽂件。
本⽂的vscode版本较新,旧版本可能界⾯不太⼀样,可直接点击下图中的⻮轮按钮,此时界⾯中⼼会弹出选项,直接点击第⼀个 C++(GDB/LLDB),然后点最后⼀个默认的即可:
此时,vscode会⾃动创建⼀个launch.json⽂件,这个launch.json⽂件在⾃动创建的隐藏⽂件夹.vscode下(⽂件夹中按 ctrl+H就可以显⽰隐藏⽂件),只需要改2个地⽅:
“program”:你的程序编译出来的可执⾏⽂件(⽤cmake先编译出⼀个可执⾏⽂件,只需要第⼀次,⼀旦后续配置好了就直接 按F5)
“preLaunchTask”:新添加⼀个选项为build,这样每次F5调试才会重新编译⽣成新的可执⾏⽂件,否则只是执⾏
“externalConsole”:如果是true,每次按F5调试会⾃动弹出⼀个额外的终端,程序内容会在这个弹出的终端下运⾏和显⽰, 但是每次调试完了还要⼈⼯关闭。若是false,程序会在vscode下⾯的界⾯运⾏和显⽰,有点像VS
接下去只要再弄2个⽂件,就可以debug你的项⽬了,第⼀个是tasks.json⽂件,可以在⽹上搜索如何⽣成,不过更直接的⽅ 式是直接在.vscode下新建⼀个tasks.json⽂件,然后把以下内容直接复制上去,图中和默认tasks.json⽂件不同的地⽅是”command”选项,这边改成build.sh,这个build.sh是⼀个脚本,可以⾃定义做很多事情:
第⼆个就是刚才提到的build.sh⽂件,这个脚本⽂件随便叫啥名字,⾥⾯随便做啥事情,每当按F5之后,会⾃动运⾏这个脚本 ⾥的事情,⽐如这⾥的build.sh:
调试代码
⼀切就绪之后,设好debug断点,直接按F5开始愉快的调试吧!F5直接运⾏到断点或结束,F10单步调试等(与windows下VS 操作类似)
总结
在vscode下配置C++调试环境主要就是做⼀件事:创(复)建(制)1个⽂件夹和3个⽂件:
launch.json
tasks.json
编译执⾏的脚本:例⼦中的脚本内容实际就是cmake内容
注:本文作者为我们星球嘉宾。
上述内容,如有侵犯版权,请联系作者,会自行删文。
推荐阅读:
那些精贵的3D视觉系统学习资源总结(附书籍、网址与****)
机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划
重磅!3DCVer-知识星球和学术交流群已成立
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导,550+的星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题
欢迎加入我们公众号读者群一起和同行交流,目前有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加群或投稿