ubuntu下使用visual studio code来编译和调试C++
最近想在linux上编译c++代码,自己却一直习惯window上的IDE。以前公司要我写Linux代码的时候,我一般都是用eclipse + CDT,而eclipse这东西吧,我个人感觉因为加载组件太多了,打开非常慢,所以不怎么想用它。后来用了一下vim + cmake 来搞,编译是可以了,调试又有点麻烦。今天在逛CSDN的时候看了一篇帖子说visual studio code 可以编译调试C++,我马上跑去微软的网站找到了 c/c++ for vs code,我就简单记录下编译过程:
一、快捷键
1、Open the Command Palette (Ctrl+Shift+P)
2、You can now build your application with (Ctrl+Shift+B)
3、press(Ctrl+Shift+O),then enter the name of the symbol you're looking for
4、To search for a symbol in the current workspace,start by pressing (Crtl + T)
二、安装编译调试过程(我不重复写了)
1、安装的话可以直接到这里去看,很简单的: c/c++ for vs code,如果看不懂英文的话,有个哥们也写基本过程:http://blog.csdn.net/q932104843/article/details/51924900
三、调试第三方库,比如(muduo库)
由于VSCode是用GCC去编译的,熟悉GCC非常重要,如果不熟悉GCC可以参考《gcc技术参考大全》。

1. 按照这篇文章来安装muduo库
2.用vscod来打开 echo例子目录,截图如下:

2、配置launch.json,如下图:

首先点击 debug按钮(红色数字1),然后在点击 配置按钮(红色数字2),在弹出来的选项中选择:GDB。
最后 把"enter program name for example ${workspaceRoot}/a.out" 改成 "${workspaceRoot}/a.out"。(红色数字3和4)
3、配置tasks
首先按快捷键: ctrl + shift +p ,再输入:>tasks,再弹出的下拉选项中选:Tasks:Configure Task Runner,如下图:

好了,我们把默认的tasks.json修改成如下图所示:

至于为什么要改成这样呢?可以用终端打开echo目录,输入:
g++ -g -o a.out echo.cc main.cc -I /home/lh/Downloads/build/debug-install/include/ -L /home/lh/Downloads/build/debug-install/lib/ -lmuduo_base -lmuduo_net -lpthread
就可以看到echo目录多了a.out文件。其实vscode也是用GCC命令来编译,它的参数(红色数字2)也基本和GCC的参数一样。
我们可以直接用快捷键: ctrl + shift +B来编译,也可以看到echo目录下多出了a.out文件。
4、调试程序
首先设置断点(红色数字2)如下图:

点击 debug按钮(红色数字1),如下图

可以看到了各种local变量,证明调试成功了。
ubuntu下使用visual studio code来编译和调试C++的更多相关文章
- 在ubuntu下使用visual studio code编写python
感觉有了visual studio code之后,不管编写什么语言的代码都可以,简单安装对应的语言插件即可. 这不轮到了最近比较热的python语言,蹭着AI的热度,python语言成为了工程师们又一 ...
- ubuntu下安装Visual Studio Code
环境准备 先安装一般umake没有问题 sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update sudo ...
- visual studio code(vscode) 调试php(转)
原文链接:http://www.cnblogs.com/CLR010/p/5276077.html visual studio code(vscode) 调试php 1.下载vscode (vis ...
- 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题
在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...
- Windows下使用Visual Studio Code搭建Go语言环境
1.安装GO语言 下载地址: https://golang.org/dl/ Windows下直接运行安装GO语言即可. 安装成功. 安装完毕GO语言后,需要添加GOPATH环 ...
- windows下用visual studio code 调试go代码
http://www.golangtc.com/download下载安装包或压缩包 配置环境变量 配置GOROOT: 配置PATH:在PATH最后添加 配置GOPATH:GOPATH的作用请自行百度, ...
- 在 Ubuntu 中使用 Visual Studio Code
前言 我一直在 Linux 桌面系统下的探索寻找各种界面美观.使用舒适的软件工具.对于Linux下的开发人员来讲,这几年最大的福利就是 MicroSoft 推出的 Visual Studio Code ...
- centos下安装visual studio code出现can't find libXss.so.1,出现这在类似怎么查找相关包
在安装visual studio code时候.出现libXss.so.1被依赖,这个so文件要查看是属于那个包,通过此命令repoquery --nvr --whatprovides libXss. ...
- 基于Visual Studio Code搭建Golang开发调试环境【非转载】
由于对Docker+kubernetes的使用及持续关注,要理解这个平台的原理,势必需要对golang有一定的理解,基于此开始利用业余时间学习go,基础语法看完之后,搭建开发环境肯定是第一步,虽然能g ...
随机推荐
- java return
return语句的作用: 1.返回一个值,可以是任意类型的 2.使程序返回到操作系统,或者说是代表"已经做完,离开此方法" ---------------------------- ...
- [leetcode] 根据String数组构造TreeNode,用于LeetCode树结构相关的测试用例
LeetCode 跟树结构相关的题目的测试用例中大多是通过String数组来构造树.例如{2,#,3,#,4,#,5,#,6},可以构造出如下的树(将树结构逆时针选择90度显示): 6 ...
- Vim的分割窗口split命令
显示两个不同的文件:或者同时显示一个文件的两个不同地方:又或者并排比较两个文件.这一切都可以通过分割窗口实现. 打开新窗口最简单的命令如下: :split (水平分割) || :vsplit (垂直分 ...
- 简介 – ASP.NET MVC 4 系列
正所谓好记性不如烂笔头,尤其是技术类书籍在阅读后,时间久了一定会忘记.而重新翻阅整本书也较为低效,遂以博客记录阅读摘要以供日后查阅.本系列文章均摘要自 Wrox 红皮书[ASP.NET ...
- JAVA 嵌套类和内部类
一.什么是嵌套类及内部类? 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型: 静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类, ...
- Mybatis Generator自动生成的mapper只有insert方法
– Mybatis Generator 生成的mapper只有insert方法 – 首先检查generatorConfig.xml中table项中的属性 enableSelectByPrimaryKe ...
- Visual Studio+TFS--强大的项目管理工具
一.前言 微软的Visual Studio非常强大,可以无缝结合Git或自家的TFS(Team Foundation Server),进行项目管理非常方便,从需求分析.开发.测试.维护,几乎可以贯穿软 ...
- putty+xming远程登录Ubuntu16.04图形界面
前面我写过一篇<Ubuntu16.04 安装ftp服务器传输文件>的文章.文章当中已经可以远程访问linux服务器并且传输文件,然而要在putty中使用开启图形界面的命令到目前为止还是不够 ...
- Java基础和JDK5.0新特性
Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...
- Excel 读取字符串引发的问题
将EXCEL数据导出的时候如果同一列数据中既有文字,又有数字!读取时一列中要么文字丢失只剩下数字,要么数字丢失,只剩下文字,这是由第一行的数据类型决定的.出现这种问题是由于数据类型不统一造成的. 连接 ...