添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天, 点击查看活动详情

一、安装VsCode

参看 Visual Studio Code 写代码前的准备

二、安装相关扩展

在Extensions view(扩展视图)通过搜索安装 C++ 扩展 (Ctrl+Shift+X).

三、安装 mingw-w64

创建它是为了在 Windows 系统上支持 GCC 编译器,使用 mingw-w64 中的 GDB 调试器来创建在 Windows 上运行的程序。

通过 MSYS2 获得最新版本的 Mingw-w64,它提供了 GCC、Mingw-w64 和其他有用的 c++ 工具和库的最新原生版本。

您可以从 MSYS2 页面下载最新的安装程序,或使用 此链接安装 ,具体教程还可以参考 官方文档

完成安装后的界面如下所示

可以根据需要,安装 mingw-w64 GCC pacman -S mingw-w64-x86_64-gcc

查看安装好的 gcc 版本

安装 Mingw-w64 工具链( pacman -S --needed base-devel mingw-w64-x86_64-toolchain )。在MSYS2终端下执行pacman命令。接受默认值以安装工具链组中的所有成员。全部安装按下 Enter 键即可。

将 Mingw-w64 bin 文件夹的路径添加到 Windows 的 path 环境变量中,操作步骤如下:

在Windows搜索栏中,键入 sysdm.cpl

  • 通过选择 Yes, I trust the authors 来接受 Workspace Trust弹窗
  • 此时 vscode 将被打开( code .
  • 一般在你的工程目录的 .vscode 文件夹下有如下文件:
  • tasks.json (build instructions)
  • launch.json (debugger settings)
  • c_cpp_properties.json (compiler path and IntelliSense settings)
  • 4.2 创建源码文件

  • 新建文件 helloworld.cpp
  • 代码如下所示,Ctrl+S保存
    #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;
    

    4.3 编译运行

    在 vscode 终端键入g++ .\helloworld.cpp

    此时将生成 a.exe

    在 vscode 终端键入.\a.exe

    此时代码被正确执行,结果在终端输出

    g++ -g .\helloworld.cpp -o mySingleHelloworld ,其中 -g 表示生成的可执行文件带有调试信息;-o mySingleHelloworld表示可以为生成的可执行文件自定义名称,大家可以自行尝试。

    4.4 调试配置

    4.4.1 launch.json 配置

    点击边栏左侧的 Launch&Debug 按钮,点击创建 launch.json 文件

    你将会发现项目的 .vscode 文件夹下生成了 launch.json 启动配置文件。

    GDB 调试代码,在列表中选择 C++ (GDB/LLDB)

    然后系统将创建一个默认的 launch.json 文件

    将光标放在图中configuration的[]中,点击Add configration

    在接下来弹出的选项中,选择C/C++:{gdb}启动

    然后就可以看到类似代码

    下面来一起看一下里面的参数。

    以下属性对于每个启动配置都是必需的:

  • type 用于此启动配置的调试器类型。例如,每个安装的调试扩展都引入一个 type: 例如,node 用于内置的 node 调试器,或者 php 和 go 扩展 dephp和go。
  • request 此启动配置的请求类型。目前支持launch 和 attach
  • name 在Debug启动配置下拉菜单中显示的对读者友好的名称。
  • 其他属性:

  • program 启动调试器时要运行的可执行文件或文件(所以我们需要先build生成一个执行文件 helloworld.exe,vs中的F5一键就把这些过程都做了:编译链接生成)。具体的需要键入运行时启动的程序路径:${workspaceFolder} ,其为工程目录,表示当前 VSCode 打开的文件的根目录。这里先配置成
    "program": "${workspaceFolder}\\helloworld.exe",
    
  • args:表示启动程序时传递给程序进行调试的参数。可以为空。可以根据需求以后配置。
  • cwd: 表示用于查找依赖项和其他文件的当前工作目录。你也可以在当前目录下创建 build 文件夹, 在此文件夹下运行,这里配置为:
    "cwd": "${workspaceFolder}",
    
  • "preLaunchTask": "C/C++: g++.exe 生成活动文件" 表示调试之前要做的
  • 修改过后你将看到
  • 如果下图中的 miDebuggerPath 的 gdb.exe 的所在路径中没有 gdb.exe 则需要在 MINGW64 中安装,然后填写 gdb 所在的路径即可
    pacman -S mingw-w64-x86_64-gdb-multiarch
                "type": "cppbuild",
                "label": "C/C++: g++.exe 生成活动文件",
                "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
                "args": [
                    "-fdiagnostics-color=always",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe"
                "options": {
                    "cwd": "${fileDirname}"
                "problemMatcher": [
                    "$gcc"
                "group": {
                    "kind": "build",
                    "isDefault": true
                "detail": "调试器生成的任务。"
        "version": "2.0.0"
    

    tasks.json 中的变量可以参考 variables reference 理解,更多的 tasks.json 的配置细节,可以参看官网文档

  • 你可以修改你的 tasks.json 去 build 多文件的 C++ 项目。eg. "${workspaceFolder}/*.cpp" 代替 ${file}.这将 build 所有的在你的工程中的 .cpp文件.  你可以修改输出文件的路径将"${fileDirname}\${fileBasenameNoExtension}.exe" 改成"${workspaceFolder}\myProgram.exe"
  • 这里修改如下: Visual Studio Code
  • 私信