参考:

  1. https://www.cnblogs.com/foxer-z/p/12520904.html
  2. https://segmentfault.com/a/1190000020155987

VS Code是一个文本编辑器,类似于editplus,在上面有很多插件,在无法使用正版Visual Studio的情况下是一个比较常见的C++开发替代选择,但请注意,他并不能完全等同于IDE。

1. 安装VS Code

进入到VS Code的官网: https://code.visualstudio.com/,选择deb格式的文件下载安装即可.

2. 安装cpptools插件

打开VS Code后,按crtl + shift + P调出命令行,然后搜索C++,安装微软自己开发的那个:

同样可以安装C++ Intellisense插件,用于自动补全代码:

3. 安装C++的编译器/库

执行命令:

sudo apt install gcc

安装完成以后在terminal窗口运行gcc -v 确认是否安装成功;

4. 安装GNU编译工具和GDB调试工具

命令如下:

sudo apt-get update
sudo apt-get install build-essential gdb

通过定位g++和gdb来核实安装是否成功。如果文件名没有在whereis命令中返回,试试再次运行更新命令。

whereis g++
whereis gdb

5.添加配置

在终端里切换到你的helloworld工程目录,用code .打开VS Code:

cd $HOME/projects/helloworld
code .

code . 命令会在当前目录打开VS code,这个目录就是你的“工作空间”。随着教程的进行,你将看到在工作目录的.vscode目录中会创建两个文件:

tasks.json(编译说明)
launch.json(调试设置)

注意VS Code只能打开源码所在的文件夹,而不是直接打开源码文件,否则下面将无法进行

  1. 添加源代码文件:
    在文件管理标题栏上选择 新文件 按钮,创建一个 helloworld.cpp 文件:
  2. 添加helloworld源代码:
#include <iostream>
#include <vector>
#include <string>using namespace std;int main()
{vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};for (const string& word : msg){cout << word << " ";}cout << endl;
}

Ctrl+S保存文件。在VS code侧边栏的 文件管理 窗口(Ctrl+Shift+E)中,注意你刚添加的文件是怎样显示的。

你也可以打开自动保存功能,自动保存文件的改动,在 文件 主菜单中点击 自动保存

到这里,你如果参考网上的教程,可能会感觉到有点怪异,因为我们以前使用IDE的时候,直接找两个按钮或者菜单,编译、运行/调试,就可以跑起来了,但那是IDE。
VS code 只是一个文本编辑器,在VS code里面,需要通过插件来完成编译、运行的流程。所以需要额外增加两个配置文件来完成这个事情,这两个配置文件要放在一个叫.vscode目录下面,你可以在你的workspace目录下创建这个目录。

  1. 编译helloworld.cpp:
    接下来,你要创建 tasks.json 文件,告诉VS code怎样编译程序。
    在Cpp文件下使用快捷键ctrl+shift+P打开搜索框,输入>tasks,选择配置任务,使用模板文件创建tasks.json,选择others

    将上述tasks.json文件改为:
{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "g++","isShellCommand": true,"args": ["-g", "${file}", "-std=c++11", "-o", "${fileBasenameNoExtension}.out"],"showOutput": "always"}]
}

command选项指明要运行的程序,这个例子中是g++args数组指明要传给g++的命令行参数,这些参数的顺序必须符合编译器要求。label选项的值会在任务列表中显示,你可以任性地修改它。
这项工作是调用g++编译目标文件(file),并在当前目录({file}),并在当前目录(file),并在当前目录({fileDirname})创建一个与目标文件同名的可执行文件,此教程中的例子创建helloworld.out文件。

终端主菜单中选择运行任务build --> gcc ,运行定义在tasks.json文件的编译任务:

任务开始时,源代码编辑框下面会出现终端面板。编译完成后,终端会输出编译是否成功的相关信息。编译成功的样子像这样:

执行ls命令可以看到可执行文件helloworld.out,在终端输入./helloworld.out运行helloworld

  1. 调试helloworld.cpp:
    接下来,你要创建一个launch.json文件来配置VS code,让它在你按F5时调用GDB调试程序。
    在主菜单选择运行 > 添加配置… 然后选择 C++(GDB/LLDB)
    将上述launch.json文件改为:
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/${fileBasenameNoExtension}.out","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "Set Disassembly Flavor to Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]}]
}

program选项指定要调试的程序。这里设置的是helloworld.cpp生成的目标文件helloworld.out

这里默认,C++扩展不会源代码中添加任何断点,stopAtEntry的值为false。将stopAtEntry设为true会在开始调试时停在main函数位置。

6. 开始调试会话

返回helloworld.cpp,这是目前的目标文件。

F5或主菜单选择运行 > 启动调试

Ubuntu下配置VS Code C++ 环境相关推荐

  1. 完美解决Ubuntu16.04下配置vs code编译环境

    Vs Code环境配置 引用文献 其他参考:在Ubuntu中安装VSCode并配置C/C++开发环境的方法步骤 sudo apt-get update //访问源列表,并读取软件列表 sudo apt ...

  2. ubuntu下配置JDK和tomcat和IDEA2017(永久激活)开发环境

    一.Ubuntu下配置java环境 1.下载jdk,这里下载的是jdk8版本,地址为http://www.oracle.com/technetwork/java/javase/downloads/jd ...

  3. 阿里云ubuntu下配置jdk环境变量总是失效

    阿里云ubuntu下配置jdk环境变量总是失效 暂时未找到解决办法,只能每次失效重新应用配置 source /etc/profile

  4. Star: Ubuntu下配置和编译cpp-ethereum客户端启动GPU加速交易

    Ubuntu下配置和编译cpp-ethereum客户端启动GPU加速交易 Ethereum,中文翻译是"以太坊",是一个公有区块链的开源项目.因为以太坊是基于P2P网络所以没有中心 ...

  5. Ubuntu下配置Nginx HTTPS

    HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入S ...

  6. openocd调试Linux内核,Ubuntu下配置OpenOCD+FT2232

    Ubuntu下配置OpenOCD+FT2232 [1]确认调试器方案 将调试器插到电脑上,lsusb看一下: Bus 003 Device 009: ID 1457:5118 First Intern ...

  7. 在Linux(Ubuntu)下搭建ASP.NET Core环境并运行 继续跨平台

    最新教程:http://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环 ...

  8. ubuntu下搭建java web开发环境的详细步骤

    系统环境:Ubuntu 10.10(linux-kernel 2.6.35-22) 安装版本:apache-tomcat-7.0.29.tar.gz(官方网址:Apache Tomcat) 安装步骤: ...

  9. Ubuntu下配置FreeRADIUS + PPTP/L2TP + Mysql + daloRADIUS

    PPTP/L2TP安装方法就不写了,前面好多文章都介绍了安装方法. 下面先安装FreeRADIUS-server Shell 1 2 3 4 5 6 7 #sudo apt-get install m ...

最新文章

  1. ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?
  2. 10款免费工具:敏捷开发运维(DevOps)的好帮手
  3. XML与Web数据挖掘
  4. java ee cdi_Java EE CDI限定词:快速浏览
  5. 信息学奥赛C++语言:旅行
  6. 必备的Linux基础命令
  7. C++socket编程(八):8.2简单的基于UDP的客户端和服务端
  8. HDU 1085 Holding Bin-Laden Captive!
  9. matlab 积分进阶教程,matlab进阶微积分篇6
  10. 开源、私有化部署,这款知识管理系统还有多少惊喜是我们不知道的
  11. Linux下确认CPU是否开启超线程
  12. Android Lolipop AssetAtlasService引起的系统崩溃
  13. 电脑进程说明,常见,作用,说明,是否,查看,问题
  14. JS内功修炼-基础篇
  15. Ubuntu搭建FTP服务器后用filezella连接报错
  16. java程序员越来越多,为啥工资反而越来越高?
  17. socket编程(在线自动聊天工具) --Python3
  18. 选项模式(option)
  19. vcs 覆盖率收集2——覆盖率选项 + 合并覆盖率
  20. 时事评论--民间只有传说

热门文章

  1. 关于联想投票 华为3GPP参会代表发文:上纲上线指责联想很荒唐
  2. 首都师范 博弈论 6 1 动态博弈简介
  3. 【180609】超酷界面的VC++音乐播放器
  4. Android 壁纸应用之动态壁纸
  5. 简单FlexLCDS环境搭建以及示例
  6. 关于mybatis的逆向工程中分页配置
  7. skype for linux 下载,开源周新闻:微软重大更新Skype for Linux
  8. [AIO] packer-unpacker
  9. java ee程序员招聘_程序员招聘网
  10. android imageview点击图片放大缩小,Android实现ImageView图片双击放大及缩小