点击上方“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视觉系统化学习路线

那些精贵的3D视觉系统学习资源总结(附书籍、网址与视频教程)

超全的3D视觉数据集汇总

大盘点|6D姿态估计算法汇总(上)

大盘点|6D姿态估计算法汇总(下)

机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划

汇总|3D点云目标检测算法

汇总|3D人脸重建算法

那些年,我们一起刷过的计算机视觉比赛

总结|深度学习实现缺陷检测

深度学习在3-D环境重建中的应用

汇总|医学图像分析领域论文

大盘点|OCR算法汇总

重磅!3DCVer-知识星球和学术交流群已成立

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导,550+的星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

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

▲长按加群或投稿

实战|C++在vscode上的调试配置相关推荐

  1. vs code react-native 安卓调试_实战|C++在vscode上的调试配置

    作者:大菊象 Date:2020-02-29

  2. VsCode进行python调试配置设置

    使用vscode进行调试的时候,往往需要进行调试配置文件设置.如下为调试python过程中常用的参数的示例和说明.更多内容参考官方说明 {// Use IntelliSense to learn ab ...

  3. 如何在vscode上运行调试C++(最简单的方法)

    Visual Studio Code vscode同样是微软出品的,支持....看上面的vside介绍吧,就省略了(^_^) 人称宇宙第一编辑器,作为编辑器,它几乎支持所有的语言(对应语言风格的高亮, ...

  4. boost库在visual studio、DevC++和vscode上的环境配置

    目录标题 @[TOC](目录标题) 1.boost库简介 1. 获取 Boost 2. Boost 的目录结构 3. Boost 使用方式 2.在DEVC++中配置使用boost库的环境 3.在vis ...

  5. vscode断开调试服务器文件,vscode显示等待调试器断开连接

    我正在尝试在vscode上调试量角器脚本. 我编辑了launch.json文件,但是调试控制台抛出了下面的错误. vscode调试控制台输出: C:\Program Files\nodejs\node ...

  6. vscode使用教程python-如何在VSCode上轻松舒适的配置Python的方法步骤

    前言 之前被学长推荐使用了VSCode,后惊叹了VSCode的强大,尤其是他的配置,比之前使用sublime方便多了,刚好实验室也来了一批新的学弟学妹,来仔细的逐步的讲解一些,在自己的电脑上轻松的配置 ...

  7. Visual Studio Code (VSCode) 之 C/C++ 调试配置详解

    准备   默认情况下,VSCode仅仅内置了对node.js运行时的调试支持,只可以直接调试JavaScript.TypeScript和任何其他翻译为JavaScript的语言.其他语言的调试支持,都 ...

  8. vscode 上刷leetcode算法题(含配置)

    为什么选择在vscode 上刷leetcode 减少leetcode网页提交次数 提高"提交通过率" 轻量级的,易于debug的IDE 语法高亮美观 方便跑多个测试用例 调试链表, ...

  9. 配置VScode上基于WSL的lc3汇编语言环境

    博客内容说明 我的博客主站是基于notion的,这是我的notion主页.因为notion的markdown格式和csdn不兼容,所以别的文章内容可能会缺图和排版错误,请谅解. 所有文章我都会贴上no ...

最新文章

  1. [译] React Native vs. Cordova、PhoneGap、Ionic,等等
  2. HDU 1251(trie树)
  3. 机器学习实战:支持向量机
  4. requests爬取免费代理2
  5. 今年的 618,你清空的不仅仅是购物车,还有焦虑和迷茫
  6. 攻防世界 用什么工具_橱柜清洁、控油方法 厨房清洁工具用什么好
  7. radius mysql md5_radius协议采用什么传输 radius协议中md5加密函数的参数怎么处理
  8. 转载:分布式Session共享:tomcat+memcached实现session共享
  9. 一文讲懂什么是 vlan、三层交换机、网关、DNS、子网掩码、MAC地址
  10. 微积分的历史(二):起源之牛顿
  11. vscode让代码敲出火焰
  12. 高性能家用 NAS 搭建(TrueNAS SCALE)
  13. 王阳明《心学》小总结
  14. Postman任务栏图标丢失
  15. 构建deb包前如何获取软件的依赖包
  16. java第三次试验报告
  17. 嵌入式:ARM中断系统设计全解
  18. 某电影网站信息的爬取【干货】
  19. 羊了个羊微信小程序开发丨源码交付
  20. 恢复数据库sql语句:sourse

热门文章

  1. UITableView学习笔记
  2. Hibernate,get,load,find方法解析
  3. matlab中find函数的使用说明
  4. myeclipse 6.0 弹出 Multiple Errors have Occurred 错误
  5. 8088/8086的功能结构
  6. 一文读懂Data Lake的概念、特征、架构与案例
  7. Kafka那些值得我们学习的优秀设计
  8. Springboot 日志、配置文件、接口数据如何脱敏?老鸟们都是这样玩的!
  9. 亿级商城计价中心 - 从容应对复杂场景价格计算
  10. 只要努力搞,没有KPI搞不垮的团队?