一、安装 C++ 开发环境

Using GCC with MinGW

  1. 安装 MSYS2
  2. 更新 MSYS2 pacman -Syu
  3. 在开始菜单中运行 MSYS2 MSYS,更新其余的基本包 pacman -Su
  4. 安装 C++ 开发环境:
    • clang++ x64 gdb: pacman -S --needed base-devel mingw-w64-ucrt-x86_64-clang mingw-w64-ucrt-x86_64-gdb
    • g++ gdb: pacman -S --needed base-devel mingw-w64-x86_64-toolchain
    • clang++ lldb: pacman -S --needed base-devel mingw-w64-clang-x86_64-lldb
      这个库会把 clang clang++ 等库安装到 msys64/clang64/bin 目录,但是 lldbWindows 上的调试效果不如 gdb
    • clang++ x86pacman -S --needed base-devel mingw-w64-i686-clang
  5. 添加环境变量 D:\msys64\ucrt64\bin
  6. 检查是否安装成功
    • clang++ --version
    • g++ --version
    • gdb --version
pacman -Syu             // 更新整个系统
pacman -Su              // 更新已安装的包
pacman -Ss 关键字       // 搜索含关键字的包
pacman -S 包名          // 安装包,也可以同时安装多个包,只需以空格分隔包名即可
pacman -Rs 包名         // 删除包及其依赖
pacman -R 包名          // 删除包

二、配置 VS Code

主要是修改 task.jsonlaunch.json 两个配置文件;
新版本的 VS CodeF5 会自动创建这两个配置文件,稍做修改就可以了;

task.json 示例:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "Build",
            "command": "clang++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                // "${file}",               // 单文件
                "${fileDirname}\\*.cpp",    // 多文件
                "-o",
                "${workspaceRoot}\\bin64\\${fileBasenameNoExtension}.exe",
                "-ggdb3",                   // 生成和调试有关的信息
                "-Wall",                    // 开启额外警告
                "-static-libgcc",           // 静态链接
                "-std=c++17",               // 使用c++17标准
                "-finput-charset=UTF-8",    // 输入编译器文本编码 默认为UTF-8
                "-D _USE_MATH_DEFINES"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

launch.json 示例:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}\\bin64\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build"
        }
    ]
}