必须先安装g++并验证g++ --version有输出,再配置Sublime;Windows装MinGW-w64并勾选Add to PATH,macOS用brew install gcc后调用g++-14,Linux用apt或dnf安装build-essential。

g++ --version 报错就别配 Sublime,先装编译器
Sublime Text 本身不带编译器,所有构建动作都靠调用系统里的 g++ 或 clang++。如果终端里输 g++ --version 直接报 “不是内部或外部命令”,说明 Sublime 的任何配置都没意义——它根本找不到编译器。
Windows 用户必须装 MinGW-w64(不是老版 MinGW),安装时勾选 “Add to PATH”;macOS 用户先跑 xcode-select --install,再 brew install gcc,注意 Homebrew 安装的 g++ 实际叫 g++-14(版本号随 brew 更新变);Linux 用户直接 sudo apt install build-essential(Ubuntu/Debian)或 sudo dnf groupinstall "Development Tools"(Fedora)。
- 验证方式统一:打开终端,输入
g++ --version,有输出即成功 - Windows 若用 MSYS2,路径通常是
C:\msys64\mingw64\bin,加到 PATH 后要重启终端 - macOS 上
g++默认可能指向 clang,得在构建系统里写g++-14才能用 GCC 特性
Build System 里 shell_cmd 和 cmd 别混用
Sublime 的构建系统支持两种命令写法:shell_cmd(字符串,走 shell 解析)和 cmd(数组,不经过 shell)。二者不能混搭,否则 &&、start、cmd /c 这类 shell 操作会失效。
Windows 下想编译完自动运行并暂停看输出,得用 shell_cmd 并显式调用 cmd:
立即学习“C++免费学习笔记(深入)”;
{"shell_cmd": "g++ \"$file\" -o \"$file_base_name.exe\" -std=c++17 -O2 -Wall && start cmd /c \"${file_path}/${file_base_name}.exe & pause\""}
Linux/macOS 更简单,直接用 shell_cmd 加 &&:
{"shell_cmd": "g++ \"$file\" -o \"$file_base_name\" -std=c++17 -O2 -Wall && ./$file_base_name"}
-
cmd数组写法里不能写&&,它会被当字面量传给程序,导致编译完不运行 -
shell_cmd中的双引号必须转义,否则 JSON 解析失败;$file等变量名不能加引号包裹 - Windows 路径含空格时,
"$file"必须保留双引号,否则 g++ 会把路径断开
中文输出乱码?别改 Sublime 编码,改终端默认代码页
Sublime 底部面板显示中文乱码,90% 不是编辑器编码问题,而是 Windows 终端默认代码页(CP936)和 g++ 输出编码(UTF-8)不匹配。改 "encoding": "utf-8" 没用,因为 Sublime 只负责读取编译器 stdout,而 Windows CMD 默认不认 UTF-8。
- 临时解决:在构建命令开头加
chcp 65001 &&,例如:"shell_cmd": "chcp 65001 >nul && g++ ..." - 一劳永逸:在 Windows 设置 → 时间和语言 → 语言 → 管理语言设置 → 更改系统区域设置 → 勾选“Beta 版:使用 Unicode UTF-8 提供全球语言支持”
- macOS/Linux 一般无此问题,但若终端 locale 是
en_US.UTF-8而代码用 GBK 写,也会乱码——统一用 UTF-8 源文件 +-finput-charset=UTF-8编译参数
Ctrl+B 没反应?检查 Build System 是否被正确选中
很多人配完保存了 C++17.sublime-build,却还在用默认的 Automatic 构建系统。Sublime 不会自动切换,必须手动选择。
- 菜单栏:Tools → Build System → 选你刚保存的名字(比如
C++17),前面要有对勾 - 快捷键
Ctrl+Shift+P输入 “Set Build System”,快速切换 - 如果名字没出现在菜单里,说明文件没保存到正确路径:Windows 是
%APPDATA%\Sublime Text\Packages\User\,macOS 是~/Library/Application Support/Sublime Text/Packages/User/ - 文件后缀必须是
.sublime-build,且内容是合法 JSON(可用在线 JSON 校验器检查)
真正卡住的点往往不在 JSON 写法,而在编译器不可达、构建系统未激活、或终端编码环境不兼容——这些地方一错,整个流程就静默失败。


















