必须先装好本地编译器和调试器,VSCode 不自带 C++ 工具链;需验证 g++/gdb 可用、PATH 配置正确、tasks.json 含 -g 和 -o、launch.json 的 program 与 miDebuggerPath 路径准确匹配、c_cpp_properties.json 的 compilerPath 与 tasks.json 一致。

必须先装好本地编译器和调试器,VSCode 本身不带任何 C++ 工具链,配置失败八成卡在这一步。
确认 g++ 和 gdb 真的能用
打开 VSCode 内置终端(Ctrl+`),执行:
-
g++ --version—— 必须输出版本号,不能报command not found -
gdb --version(Windows/macOS/Linux 通用;macOS 若装的是 Xcode 命令行工具,默认只有lldb,但launch.json里仍要写lldb)
常见翻车点:
- Windows 用户用 MinGW-w64,但没把
C:mingw64in加进系统PATH,或加了但没重启 VSCode 终端 - macOS 用户
brew install gcc后,g++还是指向 Clang,得用g++-14这类带版本号的命令 ——tasks.json和c_cpp_properties.json里都得填它 - Linux 用户只配了
alias g++=gcc,但tasks.json调用的是真实命令,别信 alias
tasks.json 必须带 -g 且指定输出路径
没有 -g,launch.json 就找不到调试符号;不写 -o 输出路径,VSCode 不知道该启动哪个可执行文件。
立即学习“C++免费学习笔记(深入)”;
一个最小可用的单文件构建配置(保存为 .vscode/tasks.json):
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
"-std=c++17"
],
"group": "build",
"problemMatcher": ["$gcc"]
}
]
}
注意细节:
组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,适用于PR审查、增量代码审查、全项目评审和代码质量评分,触发词包括review cpp、cpp代码评审、C++review、代码审查。
- Windows 用户要把
"command": "g++"换成完整路径,比如"C:\mingw64\bin\g++.exe"(反斜杠必须双写) -
-I./include是可选的,但项目有本地头文件时漏掉就会报fatal error: xxx.h: No such file or directory - 别用 Code Runner 插件一键运行 —— 它绕过
tasks.json,生成的可执行文件常缺调试信息,断点直接灰掉
launch.json 的 program 和 miDebuggerPath 必须对得上
调试器卡在 “launching…”、断点不命中、提示 “cannot launch program” —— 90% 是这两个字段没配准。
关键要求:
-
program必须是绝对路径,推荐用${fileDirname}/${fileBasenameNoExtension}(和tasks.json的-o输出一致) -
miDebuggerPath必须指向你系统里真实存在的调试器:
• Windows:填C:\mingw64\bin\gdb.exe
• macOS:填/usr/bin/lldb(Xcode 自带)或$(brew --prefix)/bin/lldb
• Linux:填/usr/bin/gdb - 如果用的是 Clang + lldb,
configurations的type字段必须是cppdbg,且miDebuggerPath不能填错成gdb
c_cpp_properties.json 的编译器路径必须和 tasks.json 一致
IntelliSense 提示错误、跳转失效、#include 标红,大概率是这里没对齐。
最稳妥做法:按 Ctrl+Shift+P → 输入 C/C++: Edit Configurations (UI),在界面里选中你实际用的编译器(例如 C:\mingw64\bin\g++.exe 或 /opt/homebrew/bin/g++-14)。VSCode 会自动生成 .vscode/c_cpp_properties.json,其中 compilerPath 字段必须和 tasks.json 里 command 用的完全一致。
容易忽略的点:
- macOS 上
clang++和g++-14的标准库路径不同,includePath会自动推导,但若手动改过,就得同步检查 - Windows 用户若混用 MinGW 和 MSVC 工具链,
intelliSenseMode必须设为gcc-x64,不是msvc-x64
真正麻烦的从来不是 JSON 怎么写,而是三个文件里出现的每个路径、每个命令名、每个版本号,都得在系统里真实存在且彼此匹配。少一个 -g,少一个反斜杠,或者多一个空格,调试就起不来。

















