能跑通g++ --version和gdb --version且路径不含中文、空格或特殊符号,是vs code调试c++的硬性前提;其余配置失败90%卡在此步;必须将mingw-w64的bin目录加入path、重启vs code进程,并在tasks.json中加-g、launch.json中指定midebuggerpath指向gdb.exe绝对路径。

能跑通 g++ --version 和 gdb --version,且安装路径不含中文、空格或特殊符号,是 VS Code 调试 C++ 的硬性前提;其余配置失败,90% 都卡在这一步。
验证编译器与调试器是否真正可用
VS Code 不自带编译器或调试器,所有能力都依赖你本地已安装、可调用的工具链。别急着写 JSON,先确认终端里能直接运行:
-
g++ --version必须输出版本号(Windows 用 MinGW-w64,macOS 若用 brew install gcc,默认g++可能仍指向 clang++,得用g++-14这类带版本号的命令) -
gdb --version(macOS 用户若用 lldb,则需在launch.json中显式配"miDebuggerPath": "lldb",但字段名不变) - Linux 用户检查
which g++和which gdb,别只信alias g++=...这种 shell 别名——VS Code 启动的进程不继承这些
tasks.json 必须含 -g 且输出路径明确
没 -g 就没有调试符号,断点会灰掉、F5 后直接跳过;不指定 -o 输出路径,launch.json 就找不到可执行文件。
-
command字段:Windows 用户务必填完整路径,如"C:\mingw64\bin\g++.exe"(反斜杠必须双写),不能只写"g++"—— 即使 PATH 里有,VS Code 有时也读不到 -
args至少包含:"-g"、"${file}"、"-o"、"${fileDirname}\${fileBasenameNoExtension}.exe"(Windows)或"${fileDirname}/${fileBasenameNoExtension}"(macOS/Linux) - 加
"-std=c++17"或更高标准,避免默认 C++14 导致某些语法报错;加"-O0"关闭优化,否则单步会跳行 - 如果项目有本地头文件,
args里必须加"-I./include",否则fatal error: xxx.h: No such file or directory
launch.json 的 miDebuggerPath 和 program 必须严格匹配
调试器启动失败、“launching…” 卡住、断点未绑定,绝大多数出在这两个字段没对齐。
-
miDebuggerPath必须是gdb.exe(Windows)或gdb(Linux/macOS)的**绝对路径**,例如"C:\mingw64\bin\gdb.exe";VS Code 不会自动猜位置 -
program必须和tasks.json中-o指向的路径完全一致,比如"${fileDirname}\${fileBasenameNoExtension}.exe" -
preLaunchTask字段值,必须等于tasks.json里对应 task 的label值(注意大小写和空格) - 如果用了 Code Runner 插件,它不走
launch.json,调试仍需 F5 + 正确配置——它只负责“运行”,不负责“调试”
PATH 和 VS Code 进程重启是最容易被忽略的环节
改完系统环境变量后,只关 VS Code 窗口没用,必须彻底退出进程(任务管理器里杀掉所有 Code.exe),否则新 PATH 不生效。
- MinGW-w64 安装路径本身不能含空格或中文,比如
C:Program Filesmingw64或D:我的项目mingw64都会导致g++找不到头文件、gdb启动失败 - 推荐解压到根目录,如
C:mingw64,然后把C:mingw64in加进系统 PATH(不是C:mingw64) - 改完 PATH 后,在全新打开的 CMD/PowerShell 里验证
g++ --version和gdb --version,再重启 VS Code - 如果用 MSYS2 安装 MinGW-w64,实际
gdb.exe在C:msys64ucrt64in下,不是mingw64目录
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











