必须装好g++/gdb并加入PATH,手动配置tasks.json(含-g和明确输出路径)与launch.json(program和miDebuggerPath严格匹配),禁用Code Runner等黑盒插件,且须以“Open Folder”方式打开项目。

装对编译器、配准 tasks.json 和 launch.json,才能真正在 VSCode 里编译并调试 C++ 程序;点“运行”按钮或装个 Code Runner 插件只是临时解法,多文件项目、断点调试、链接库时必然失效。
确认 g++ 已在终端可用,且 VSCode 能读到它
VSCode 不自带编译器,所有构建行为都依赖系统 PATH 中可执行的 g++。这步失败,后面全白搭。
- Windows:装 MinGW-w64(推荐
x86_64-posix-seh版),把C:\mingw64\bin(或你实际解压路径)加进「系统环境变量」PATH,不是用户变量 - macOS:运行
xcode-select --install,之后g++ --version应调用clang++ - Linux:确保
build-essential已安装,g++ --version有输出 - 关键验证:关掉所有终端,新开一个 cmd/PowerShell/Terminal,输入
g++ --version和gdb --version,两行都必须成功返回 - VSCode 必须从这个新终端启动:
code .,而不是双击图标——否则它根本看不到你刚配的 PATH
tasks.json 必须带 -g 参数且输出路径与 launch.json 严格一致
没 -g 就无法调试;输出路径写错,F5 会报 “无法找到可执行文件” 或直接闪退。
-
args至少包含:"-g"、"${file}"、"-o"、"${fileDirname}/${fileBasenameNoExtension}"(Windows 下若要 .exe 后缀,写成"${fileDirname}/${fileBasenameNoExtension}.exe") - 别用反斜杠硬编码路径:
"${fileDirname}\${fileBasenameNoExtension}.exe"在 macOS/Linux 下会解析失败 -
problemMatcher设为"$gcc",否则编译错误不跳转到代码行 - 如果用了非默认
g++.exe路径(比如D:/mingw64/bin/g++.exe),command字段必须显式写死,不能只写g++
launch.json 的 program 和 miDebuggerPath 不能留空或靠猜
F5 按下去就报错“无法启动调试器”?大概率是这两个字段没填对。
-
program值必须和tasks.json中-o指定的输出路径**完全相同**,包括后缀(Windows 下带.exe,其他系统不带) -
miDebuggerPath必须指向真实存在的gdb.exe文件,例如"C:/mingw64/bin/gdb.exe";写成"gdb"或留空,调试器根本起不来 -
preLaunchTask要和tasks.json中的label完全匹配,大小写敏感 -
externalConsole设为true,否则 Windows 下程序一闪而过,看不到输出
最易被忽略的一点:所有配置只在「已打开文件夹」下生效。单独打开一个 .cpp 文件,.vscode/tasks.json 和 .vscode/launch.json 根本不会被加载——必须用 VSCode 的 “Open Folder” 打开一个空文件夹,再在里面建文件、生成配置。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











