PAYATHON 2026

VS Code 无法识别 GCC:gcc 命令未找到

排障赵师傅

结论

gcc --version 能在 Windows Command Prompt 中运行,说明该窗口的 PATH 已包含 GCC。VS Code 如果早于 PATH 修改时间启动,读取的仍是旧环境变量。Code Runner 也可能使用了不同的终端或执行器配置。

C/C++ 扩展不会安装 GCC,也不会为 Code Runner 自动配置编译器。一般把 gcc.exe 所在的 bin 目录加入 Windows 的 PATH,再彻底退出并重启 VS Code 即可。如果不能修改 PATH,可以在 Code Runner 中直接填写 gcc.exe 的完整路径。

确认 GCC 的位置

在可以正常运行 GCC 的 Command Prompt 中执行:

where gcc

输出可能是:

C:\mingw64\bin\gcc.exe

也可能位于其他目录,例如:

C:\msys64\ucrt64\bin\gcc.exe

具体位置取决于 MinGW-w64 的安装方式。需要添加到 PATH 的是包含 gcc.exe 的目录,例如:

C:\mingw64\bin

不要把 gcc.exe 文件本身或 MinGW-w64 的上一级目录添加到 PATH。

将 GCC 加入 Windows PATH

按下面的步骤设置用户级环境变量:

  1. 在 Windows 中搜索“环境变量”。
  2. 打开“编辑系统环境变量”。
  3. 单击“环境变量”。
  4. 在“用户变量”中选择 Path,然后单击“编辑”。
  5. 添加 gcc.exe 所在的目录,例如:
C:\mingw64\bin
  1. 保存所有窗口。

Path 条目通常不需要加引号。如果安装了多个 MinGW、MSYS2 或其他 GCC 发行版,还要检查是否有重复路径,以免 VS Code 调用错误的版本。

完全重启 VS Code

Windows 进程通常会在启动时继承环境变量。VS Code 如果在修改 PATH 前已经启动,仅关闭集成终端可能不会更新环境变量。

关闭所有 VS Code 窗口,确认程序已完全退出后再重新打开。也可以在能够识别 GCC 的 Command Prompt 中启动项目:

cd C:\path\to\project
code .

以这种方式启动时,VS Code 会继承当前 Command Prompt 的环境变量。

在 VS Code 终端中验证

新建一个 VS Code 集成终端并执行:

where.exe gcc
gcc --version

如果使用 PowerShell,也可以执行:

Get-Command gcc

这些命令需要在 VS Code 集成终端中成功运行,Code Runner 才能通过普通的 gcc 命令找到编译器。

如果外部 Command Prompt 能找到 GCC,而 VS Code 终端找不到,可以分别查看两边的 PATH。

在 Command Prompt 中执行:

echo %PATH%

在 PowerShell 中执行:

$env:Path

检查输出中是否包含 GCC 的 bin 目录。

配置 Code Runner

打开 VS Code 的 settings.json,确认 Code Runner 使用 GCC 执行 C 文件:

{
  "code-runner.runInTerminal": true,
  "code-runner.executorMap": {
    "c": "cd $dir && gcc \"$fileName\" -o \"$fileNameWithoutExt.exe\" && \"$dir$fileNameWithoutExt.exe\""
  }
}

保存配置,重新打开 hello.c,然后执行 “Run Code”。

这条命令会进入源文件所在目录,使用 GCC 编译当前 C 文件,并在编译成功后运行生成的 .exe 文件。

较旧版本的 Windows PowerShell 可能不支持 &&。遇到这种情况,可以把 Code Runner 的默认终端改为 Command Prompt,或者使用下面的 PowerShell 配置:

{
  "code-runner.runInTerminal": true,
  "code-runner.executorMap": {
    "c": "Set-Location \"$dir\"; gcc \"$fileName\" -o \"$fileNameWithoutExt.exe\"; if ($LASTEXITCODE -eq 0) { & \"$dir$fileNameWithoutExt.exe\" }"
  }
}

根据 Code Runner 实际使用的终端选择其中一种配置。

不修改 PATH 时的配置方法

如果不方便修改 Windows 的 PATH,可以让 Code Runner 直接调用 gcc.exe。假设编译器位于:

C:\mingw64\bin\gcc.exe

Code Runner 使用 PowerShell 时,可以这样配置:

{
  "code-runner.runInTerminal": true,
  "code-runner.executorMap": {
    "c": "Set-Location \"$dir\"; & \"C:\\mingw64\\bin\\gcc.exe\" \"$fileName\" -o \"$fileNameWithoutExt.exe\"; if ($LASTEXITCODE -eq 0) { & \"$dir$fileNameWithoutExt.exe\" }"
  }
}

JSON 中的反斜杠必须写成 \\。如果 GCC 安装在其他位置,请根据 where gcc 的输出修改路径。

直接填写完整路径可以绕过 PATH,但 GCC 的安装目录发生变化时,也要同步更新 Code Runner 配置。通常还是建议正确设置 Windows 的 PATH。

测试代码

可以用下面的代码测试编译环境:

#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}

还可以先在 VS Code 终端中手动编译,以判断问题是否来自 Code Runner:

gcc hello.c -o hello.exe
.\hello.exe

如果手动编译和运行都成功,但 “Run Code” 仍然失败,就需要检查 Code Runner 的 executorMap、终端类型和扩展设置。此时 GCC 本身通常可以正常工作。

容易混淆的配置

VS Code C/C++ 扩展中的 compilerPath 主要用于 IntelliSense、头文件解析和相关开发功能。例如:

{
  "configurations": [
    {
      "name": "Win32",
      "compilerPath": "C:\\mingw64\\bin\\gcc.exe",
      "cStandard": "c17",
      "intelliSenseMode": "windows-gcc-x64"
    }
  ],
  "version": 4
}

设置 compilerPath 不会同时配置 Code Runner。即使代码补全和头文件提示正常,Code Runner 仍可能因为找不到 gcc 而运行失败。

安装 C/C++ 扩展也只会提供编辑、调试和 IntelliSense 支持,不会自动安装 MinGW-w64 或修改 Windows 的 PATH。

备注:内容仅供参考。