确认系统已装好gcc是前提,Sublime Text本身无编译器,仅调用系统gcc;需终端运行gcc --version验证,再创建含shell_cmd、file_regex、working_dir和selector的C.sublime-build文件,并手动选中该构建系统。

确认系统已装好 gcc,否则 Sublime 什么都干不了
Sublime Text 本身不带编译器,它只负责把 ${file} 丢给系统里的 gcc 去处理。所以第一步不是打开 Sublime,而是打开终端(CMD/PowerShell/Terminal),运行:gcc --version
必须有输出,比如 gcc (MinGW-W64) 13.2.0 或类似内容。没输出?说明 gcc 没装,或装了但没加进 PATH —— 此时配任何 .sublime-build 都无效。
常见卡点:
• Windows 用户装了老版 MinGW,但没勾选 “Add to PATH”;
• 安装路径含中文或空格(如 C:\Program Files\mingw64\bin),导致命令找不到;
• macOS 用户没装 Command Line Tools,xcode-select --install 没跑过;
• Linux 用户只装了 gcc,但漏了 build-essential(Ubuntu/Debian 必须)。
创建 C.sublime-build 文件,注意 shell_cmd 和 cmd 的区别
Sublime 支持两种构建语法:shell_cmd(字符串,走 shell 解析)和 cmd(数组,不经过 shell)。Windows 下推荐用 shell_cmd,避免 && 运行符失效;macOS/Linux 用 cmd 更稳妥。
一个最小可用的 Windows 版配置(保存为 C.sublime-build):
{
"shell_cmd": "gcc -Wall -std=c17 \"${file}\" -o \"${file_path}/${file_base_name}\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c"
}关键点:
•
-std=c17 显式指定标准,避免默认用过时的 C89;• 所有路径变量都加双引号,防空格路径崩掉;
• 不要写
"shell": true —— shell_cmd 默认走 shell,加了反而可能出错;•
selector 必须是 source.c,否则新建 .c 文件后不会自动关联该构建系统。
想 scanf/cin 有交互?别在 Sublime 输出面板里硬扛
Sublime 的输出面板是只读流,不支持 stdin 输入。按 Ctrl+B 编译完再按 Ctrl+Shift+B 选 Run,如果用了 shell_cmd 直接执行可执行文件,程序会闪退,你也输不了东西。
立即学习“C语言免费学习笔记(深入)”;
解决办法是调用系统终端:
• Windows:用 cmd /c start cmd /k 开新窗口
• macOS:用 open -a Terminal.app
• Linux:用 gnome-terminal 或 konsole
例如 Windows 的 Run 变体:
"variants": [
{
"name": "Run",
"shell_cmd": "gcc -Wall -std=c17 \"${file}\" -o \"${file_path}/${file_base_name}\" && start cmd /k \"cd /d ${file_path} && ${file_base_name} & pause\""
}
]注意:
•
pause 防止窗口秒关;•
cd /d ${file_path} 确保当前目录正确,否则相对路径文件(如 fopen("data.txt", "r"))打不开;• macOS/Linux 用户若用
cmd 数组写法,记得把整个命令拆成字符串数组,不能直接塞 shell 语句。
中文乱码、路径含空格、多文件编译这些坑怎么绕
Windows 下常见三类问题:
• 中文输出乱码:加编译参数 -fexec-charset=gbk(仅限 MinGW),或改源码用 setlocale(LC_ALL, "Chinese");
• 路径含空格(如 D:\My Projects\hello.c):shell_cmd 里所有 ${file} 类变量必须用双引号包裹,否则 gcc 会把空格当分隔符;
• 多文件项目(main.c + utils.c):不能只编译当前文件,得写完整命令,比如:gcc -Wall main.c utils.c -o main,此时 ${file} 就不够用了,得手动维护命令或改用 Makefile。
真正容易被忽略的是:构建系统保存后,必须在 Sublime 里手动选中它(Tools → Build System → C),否则 Ctrl+B 仍可能走默认的“None”或旧配置。而且修改 .sublime-build 后,不用重启 Sublime,但得确保文件保存在正确路径:
• Windows:%APPDATA%\Sublime Text\Packages\User\
• macOS:~/Library/Application Support/Sublime Text/Packages/User/
• Linux:~/.config/sublime-text/Packages/User/


















