一键运行的唯一前提是终端中gcc --version有输出;Sublime需右下角显示“C”、selector设为"source.c"、构建文件存于Packages/User/、手动选Build System;Win用MinGW需"shell":true及.exe后缀;macOS/Linux须chmod+x且从终端启动subl。

能一键运行的唯一前提:终端里 gcc --version 有输出。没这步,所有配置都白搭。
为什么 Ctrl+B 没反应或报 “No build system”
Sublime 不是靠文件名后缀自动匹配构建系统的,它看的是右下角状态栏显示的语言标识(比如 “C”)和 selector 字段是否匹配。
- 新建的
.c文件必须保存后,右下角才可能显示 “C”;如果显示 “Plain Text”,说明 Sublime 没识别出这是 C 代码,selector就不会触发 -
selector必须写成"source.c",不能是"c"或空着 - 新建的
C.sublime-build文件必须存到Packages/User/目录下(通过 Preferences → Browse Packages… 打开路径确认) - 首次使用前,要手动点一次 Tools → Build System → C(或你起的名字),否则 Sublime 不知道该默认选哪个
Windows 下用 MinGW 时最常踩的坑
MinGW-w64 的 gcc 实际是个批处理包装器,不走 shell 就容易崩——尤其路径含空格、或调用 DLL 失败时。
- 必须加
"shell": true,否则可能报Invalid argument或静默失败 - 输出文件名得带
.exe后缀:"${file_base_name}.exe",否则双击或执行时系统不认识 - 编译和运行不能写成一条
shell_cmd然后直接执行——因为 Sublime 输出面板不支持 stdin,scanf会卡死或闪退 - 真要交互输入,得用
variants开外部终端,例如:"cmd": ["cmd", "/c", "gcc \"${file}\" -o \"${file_path}/${file_base_name}.exe\" && start cmd /k \"${file_path}/${file_base_name}.exe\""]
macOS/Linux 下权限和路径的硬约束
Linux/macOS 不像 Windows 那样自动识别可执行文件,编译完必须显式加执行权限,否则 Permission denied。
立即学习“C语言免费学习笔记(深入)”;
-
shell_cmd必须是字符串(不是数组),才能用&&连接多条命令,例如:"gcc -Wall \"${file}\" -o \"${file_path}/${file_base_name}\" && chmod +x \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\"" - 所有含路径的变量(如
${file_path}/${file_base_name})必须用双引号包裹,否则路径带空格就直接报错 - macOS 用户如果用
brew install gcc,实际命令可能是gcc-14或g++-14,shell_cmd里得写对,不能只写gcc - 别用
system("pause")停留——它在非 Windows 平台无效,也存在安全风险;要用getchar()或std::cin.get()
最易被忽略的一点:GUI 启动的 Sublime(双击图标、从 Dock 启动)根本不会加载你的 ~/.zshrc 或 PATH,所以即使终端里 gcc --version 能跑,Sublime 里也可能找不到。macOS/Linux 必须从终端执行 subl 启动;Windows 则务必在 MinGW 安装时勾选 “add to PATH”,并彻底杀掉 Sublime 进程再重开。


















