g++必须在终端直接运行,否则Sublime构建配置无效;Windows需MinGW-w64勾选Add to PATH,macOS用brew install gcc后调用g++-14,Linux装build-essential;构建系统推荐shell_cmd而非cmd数组,并配准file_regex以支持错误跳转。

g++ 必须在终端里能直接运行,否则 Sublime 的任何构建配置都无效——这是 90% “Ctrl+B 没反应” 或 “command not found” 的根源。
确认 g++ 已安装且 PATH 生效
Sublime 启动时不会读你的 ~/.zshrc 或 Windows 用户的用户级环境变量(尤其 GUI 方式启动)。终端能跑 ≠ Sublime 能调。
- Windows:装
MinGW-w64(不是老版 MinGW),安装时勾选 Add to PATH;CMD 中执行g++ --version必须有输出 - macOS:先
xcode-select --install,再brew install gcc;注意 Homebrew 安装的g++实际叫g++-14(版本号可能为 13/15),构建系统里得写全名 - Linux / WSL2:
sudo apt install build-essential(Ubuntu/Debian)或sudo dnf groupinstall "Development Tools"(Fedora),再验证g++ --version
C++.sublime-build 必须用 shell_cmd 而非 cmd 数组(尤其 Windows)
用 cmd 数组写 ["g++", "-o", "$file_base_name", "$file"] 看似规范,但在 Windows 下极易因路径含空格、&& 不被识别、环境变量未继承而失败;shell_cmd 直接走 shell 解析,更稳。
- 推荐配置(保存为
Packages/User/C++.sublime-build):"shell_cmd": "g++ -std=c++17 -Wall \"${file}\" -o \"${file_path}/${file_base_name}\"" -
file_regex必须匹配 GCC 实际报错格式,如main.cpp:5:12: error:,否则双击错误行跳不到源码:"file_regex": "^(..[^:]*):([0-9]+):([0-9]+):? (.*)$" -
"working_dir": "${file_path}"确保编译和后续运行都在源文件目录下
添加 Run 变体让 Ctrl+Shift+B 直接运行,但别指望控制台“不闪退”
编译成功后自动运行很方便,但控制台窗口会立刻关闭——这不是构建系统问题,是程序本身行为。C++ 程序退出即关窗,和 Sublime 无关。
- 在
variants里加一个 Run:"name": "Run", "shell_cmd": "cd \"${file_path}\" && \"${file_path}/${file_base_name}\"" - Windows 用户若想看到输出,得手动加
pause或改用:"shell_cmd": "cd \"${file_path}\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause" - macOS/Linux 用户可加
read -p "Press enter to continue"代替pause
多文件项目或头文件依赖时,别硬扛构建系统
Sublime 的构建系统天然不支持自动依赖分析和增量编译。一旦涉及多个 .cpp 文件或自定义 .h,就别靠 shell_cmd 拼凑了。
立即学习“C++免费学习笔记(深入)”;
- 要么写
Makefile,然后用"shell_cmd": "make -f Makefile"调用 - 要么换工具:VS Code + C/C++ 扩展能自动索引、跳转、调试;Vim/Neovim 配
clangd也更可靠 - 硬要 Sublime 支持多文件?那得自己写脚本解析
#include、生成编译命令——不现实,也不值得
g++ 命令在哪、PATH 是谁设的、GUI 启动时环境变量从哪来。这些细节没对齐,后面所有配置都是白忙。


















