本文参考Get Started with C++ on Linux in Visual Studio Code,来源微软官方教程。为了便于大家快速上手掌握VSCode配置C++的过程,用中文展开来具体说说。

        在使用C++之前,需要先配置C++调试环境。这里我们需要两种package,一个是GCC关于C++的编译器,和GDB调试器(debugger)。而在最初安装好Ubuntu系统时,是不自带这些package的,需要我们先自己安装。在安装完它们之后,然后编写JSON配置文件,最后编写简单的C++程序,并查看是否配置好。

        1确认GCC等有无安装

        右键桌面选中打开终端,在命令行中键入

gcc -v

ubuntu vscode配置python根目录 ubuntu vscode配置c++环境_linux

上图是已安装GCC的情况。

如果GCC未安装,在保证联网的条件下,输入

sudo apt-get update

ubuntu vscode配置python根目录 ubuntu vscode配置c++环境_g++_02

 

更新Ubuntu包列表,然后用以下命令安装GNU编译工具及GDB调试器

sudo apt-get install build-essential gdb


ubuntu vscode配置python根目录 ubuntu vscode配置c++环境_vscode_03

2创建简单C++程序

        首先可以在主目录里创建一个C程序文件夹,然后在其中创建一个用于存放一个C++工程的文件夹,比方叫TestFromMicrosoft。然后打开VScode,在文件浏览界面导入该文件夹,创建一个.cpp文件,如test.cpp。

ubuntu vscode配置python根目录 ubuntu vscode配置c++环境_vscode_04

 然后粘贴以下测试程序:

#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;
}

然后保存该文件及工程。

3配置JSON文件

        这里需要在子文件夹.vscode下配置三个.json文件,第一个是tasks.json文件,其功能是告诉VSCode如何去构建或编译我的程序。当然这个任务完成需要使用g++编译器来根据源代码创建一个可执行文件(.out);第二个是launch.json,其功能是在你调试程序启动的时候启动GDB调试器;第三个是c_cpp_properties.json。但是这个文件不是必须要配置的,如果想要更多关于C++的控制功能的话可以选择创建。这个配置文件可以允许你改变例如编译器的路径等设置,当然包括路径、C++标准(默认是C++17)等等。

        它们在文件列表里的显示关系如下:

ubuntu vscode配置python根目录 ubuntu vscode配置c++环境_c++_05

        

把它们复制到各自的配置文件里即可:

//tasks.json
{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "g++ build active file",
      "command": "/usr/bin/g++",
      "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
      "options": {
        "cwd": "/usr/bin"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}
//launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++ build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "g++ build active file",
      "miDebuggerPath": "/usr/bin/gdb"
    }
  ]
}
//c_cpp_properties.json
{
  "configurations": [
    {
      "name": "Linux",
      "includePath": ["${workspaceFolder}/**"],
      "defines": [],
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "clang-x64"
    }
  ],
  "version": 4
}

然后点击启动调试,查看终端界面,输出如下信息:

ubuntu vscode配置python根目录 ubuntu vscode配置c++环境_g++_06

 表明C++调试环境配置配置完毕!

当然如果想要外部控制台输出的话,可以将配置文件launch.json中的externalConsole项改为true即可。