能跑起来的前提只有一个:终端里 gcc --version 必须有输出;sublime 启动时只读一次环境变量,gui 方式启动不加载 shell 配置文件,需从终端启动(macos/linux)或确保 mingw-w64 加入 path(windows),linux 需安装 build-essential 或 development tools,c.sublime-build 必须含双引号、正确路径、-wall 及 chmod +x(macos/linux)或 .exe 后缀(windows),stdin 输入会导致窗口一闪而过,应改用 terminus 插件或外部终端。

能跑起来的前提只有一个:终端里 gcc --version 必须有输出。别的配置全建立在这个基础上,没它,后面全是空谈。
验证 gcc 是否真能被 Sublime 调用
很多人卡在这一步却以为是配置错了。Sublime 启动时只读一次环境变量,GUI 方式启动(比如双击图标、从 Dock 点开)在 macOS/Linux 下根本不会加载 ~/.zshrc 或 /etc/profile 里的 PATH。
- macOS:必须从终端执行
subl或open -a "Sublime Text"启动,否则gcc找不到 - Windows:MinGW-w64 安装时勾选 “add to PATH”,装完后要彻底退出 Sublime(任务管理器里杀干净进程),再重开
- Linux:用
sudo apt install build-essential(Ubuntu)或sudo dnf groupinstall "Development Tools"(Fedora);验证时别用 Sublime 内置终端(Ctrl+`),用系统终端
写一个跨平台可用的 C.sublime-build
网上抄来的配置常缺引号、混用斜杠、漏 -Wall,导致中文路径报错、警告不显示、Linux 下权限失败。下面这个是实测能跑的最小可靠版本:
{
"shell_cmd": "gcc -Wall -std=c11 "${file}" -o "${file_path}/${file_base_name}" && chmod +x "${file_path}/${file_base_name}" && "${file_path}/${file_base_name}"",
"file_regex": "^(..[^:]*):([0-9]+):([0-9]+):\s+(error|warning):\s+(.*)$",
"working_dir": "${file_path}",
"selector": "source.c"
}
注意几个硬点:
- Windows 用户要把
${file_path}/${file_base_name}全部换成${file_path}/${file_base_name}.exe,包括-o和最后执行的部分 -
shell_cmd是字符串,不是数组;别和cmd混用,否则静默失败 -
chmod +x对 macOS/Linux 必不可少,否则Permission denied - 所有含路径的变量(如
${file_path}/${file_base_name})必须加双引号,否则路径带空格就崩
为什么 Run 之后窗口一闪而过?
这是最常被问、也最容易误解的问题——不是配置错,是 Sublime 输出面板根本不支持 stdin 输入。只要代码里用了 scanf 或 cin,它就会卡住、无响应,或者直接退出。
- 临时解法:把
shell_cmd最后改成&& read -p "Press any key..." -n1 -s(macOS/Linux)或&& pause(Windows cmd) - 真正解法:装
Terminus插件,用外部终端运行;或者干脆别依赖 Sublime 面板做交互输入 - 别信“加
system("pause")就行”——那只是把问题藏得更深,且 Windows 下可能因权限被拦截
真正麻烦的从来不是 JSON 语法,而是路径、编码、stdin、权限这四样东西混在一起时,错误信息还经常互相掩盖。调不通时,先关掉所有插件,用最简 printf("hello"); 测试,再一步步加功能。
13万字C语言保姆级教程(深入):立即使用
在学习笔记中,你将探索c语言的核心概念和高级技巧!











