gcc --version 能运行是配置成功的前提,sublime text 依赖系统 gcc;需安装 x86_64-win32-seh 版 mingw-w64 并添加 c:mingw64in 到 path,重启 cmd 和 sublime;c.sublime-build 文件须存于 user 目录、命名准确、json 格式正确,含 "shell": true 和 -static 参数;运行需终端配合,因内置面板不支持 stdin。

gcc --version 能跑通,才是配置成功的前提
Sublime Text 本身不编译任何代码,它只调用系统里的 gcc。如果你在 CMD 或 PowerShell 里输 gcc --version 报错“不是内部或外部命令”,那后面所有 Sublime 配置都白搭。
必须先确认三件事:
- MinGW-w64 安装的是
x86_64-win32-seh版(不是旧 MinGW,也不是 posix 线程) - 安装时勾选了 “add to PATH”,或手动把
C:mingw64in加进系统环境变量PATH - 加完
PATH后,**重启了 CMD 和 Sublime Text**(Windows 不会热加载新 PATH)
路径含中文、空格或括号(比如 C:Program Files)也会让 gcc 找不到——建议解压到纯英文无空格路径,例如 C:mingw64。
新建 C.sublime-build 文件,字段不能漏
打开 Sublime Text → Tools → Build System → New Build System…,清空默认内容,贴入以下 JSON(注意是纯 JSON,别多空格或注释):
{
"cmd": ["gcc", "-Wall", "-g", "-static", "$file", "-o", "$file_base_name.exe"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "$file_path",
"selector": "source.c",
"shell": true,
"variants": [
{
"name": "Run",
"cmd": ["gcc", "-Wall", "-g", "-static", "$file", "-o", "$file_base_name.exe", "&&", "$file_path\$file_base_name.exe"]
}
]
}
关键点:
-
"cmd"必须是数组格式,不能写成字符串(如"gcc -o ..."),否则参数会被当整体传给 shell -
-static要带上,否则运行时报libgcc_s_seh-1.dll缺失 - Windows 下输出文件名必须带
.exe后缀,$file_base_name.exe;Run变体里路径分隔符要用\(JSON 中需双反斜杠) -
"shell": true必须显式写上,否则&&不生效,cmd数组也容易找不到gcc
保存位置和命名有硬性要求
文件必须保存在 Sublime 的 User 包目录下,路径为:
- Windows:
%APPDATA%Sublime TextPackagesUserC.sublime-build - macOS:
~/Library/Application Support/Sublime Text/Packages/User/C.sublime-build - Linux:
~/.config/sublime-text/Packages/User/C.sublime-build
保存时文件名必须是 C.sublime-build(大小写敏感,不能叫 c.sublime-build 或 C_build.sublime-build)。可通过 Preferences → Browse Packages… 快速打开 User 目录。
保存后,回到编辑器,Tools → Build System 菜单里应出现 C 选项;若没出现,说明文件没放对位置或名字错了。
Ctrl+B 编译成功但 Ctrl+Shift+B 一闪而过?
这是最常被忽略的交互问题:Sublime 的输出面板不支持 stdin 输入(比如 scanf),且程序执行完就关闭面板,根本看不到结果。
临时解决办法(仅用于调试):
- 在
main()结尾加一句getchar();或system("pause");(Windows) - 或者改用
RunInCommand变体(需额外配置cmd /c start cmd /k ...),但更推荐直接去终端运行生成的.exe
真正要交互输入,就得放弃 Sublime 内置运行,转而用终端:gcc -o hello.exe hello.c && hello.exe —— 这才是可靠路径。
最后提醒:file_regex 若配错,报错行号无法双击跳转;$file_base_name 不自动加 .exe,漏写会导致生成无后缀文件,运行失败却不报错。
13万字C语言保姆级教程(深入):立即使用
在学习笔记中,你将探索c语言的核心概念和高级技巧!











