95%的情况是系统未安装g++或未将mingw的bin目录加入path;需先在cmd中依次执行g++ --version、where g++、echo %path%验证,再手动添加正确路径(如c:mingw-w64in)并彻底重启vs code。

直接说结论:g++ 不是内部或外部命令,95% 的情况是系统根本没装编译器,或装了但没把 bin 目录加进 PATH ——不是 VS Code 的问题,也不是代码写错了,是 Windows 找不到那个程序。
确认 g++ 真的没装或 PATH 没生效
别急着改 VS Code 配置,先在 CMD 里跑这三行:
-
g++ --version—— 报错?说明系统级找不到 -
where g++—— 返回空?进一步确认没注册到 PATH -
echo %PATH%—— 检查输出里有没有类似C:msys64ucrt64in或C:mingw-w64in这样的路径
常见漏点:只加了 C:mingw-w64,漏掉末尾的 in;或者路径含空格(如 C:Program Filesmingw64in),Windows 会直接忽略整条 PATH 条目。
MinGW-w64 安装后必须手动加 PATH
MSYS2 或 MinGW-w64 安装器不会自动改系统环境变量。你得自己动手:
- 打开「系统属性 → 高级 → 环境变量」
- 在「系统变量」里找到
Path,点击「编辑」→「新建」 - 粘贴完整
bin路径,比如:C:msys64ucrt64in或C:mingw-w64in - 保存后——必须关掉所有已打开的 CMD、PowerShell、VS Code 窗口,再新开一个终端验证
注意:MSYS2 用户别用 mingw64 或 clang64 环境的 bin 路径,要对应你实际安装的子环境(比如选的是 UCRT64,就用 ucrt64in)。
VS Code 终端和系统 PATH 不一致?
即使 CMD 里 g++ --version 成功,VS Code 内置终端仍可能报错。这是因为:
- VS Code 启动时读取的是它启动那一刻的环境变量
- 如果你改了 PATH 后没重启 VS Code,它还在用旧的环境
- 某些插件(比如 Copilot)会触发“重新加载环境”,但不等于重载 PATH
解决方法很简单:彻底退出 VS Code(右下角托盘也要退出),再双击图标启动。然后打开终端,直接输 g++ --version,成功了再试 Code Runner 或 tasks.json。
Code Runner 还报错?检查它的命令模板是否套错引号
即使 g++ 能运行,Code Runner 默认命令在 CMD 下大概率崩,典型现象是:
- 报
No space left on device(磁盘明明有空间) - 生成命令里出现
"d:\"xxx.exe"这种嵌套引号 - 链接阶段失败,提示
cannot find -lstdc++
原因:默认命令为 PowerShell 设计,&& 前后引号逻辑在 CMD 下失效。必须手动覆盖:
"code-runner.executorMap": {
"cpp": "g++ "$fileName" -o "$fileNameWithoutExt.exe" -std=c++20 && "$fileNameWithoutExt.exe""
}
关键点:$fileName 和 $fileNameWithoutExt 不能加额外引号;-std=c++20 要显式带上,否则可能默认 C++98 导致语法报错。
最常被忽略的一点:改完 settings.json 后,Code Runner 不会热重载配置,必须手动保存文件,且确保当前打开的是 .cpp 文件(它只对匹配语言类型生效)。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











