Sublime Text 本身不编译 C++,仅调用系统 g++/clang++;90% 的“Ctrl+B 无反应”源于终端能运行但 GUI 启动的 Sublime 未继承 PATH,须验证 g++ --version 在终端和 Sublime 中均有效,再按系统配置 MinGW-w64(Win)、g++-14(macOS)或 build-essential(Linux),并配准 file_regex 支持错误跳转。

Sublime Text 本身不编译 C++,它只调用你系统里已装好的 g++ 或 clang++;如果终端里 g++ --version 都报错,那任何 Build System 配置都无效。
验证编译器是否真能被 Sublime 调用
很多人卡在这一步却以为是 Sublime 配置错了。GUI 启动的 Sublime(比如从开始菜单、Dock 或桌面图标打开)不继承 shell 的 PATH,尤其 Windows 和 macOS 常见。
- Windows:安装 MinGW-w64 时务必勾选 “Add to PATH”;若已装完,手动把
C:\mingw64\bin加进系统环境变量,然后**重启 Sublime** - macOS:Homebrew 安装的 GCC 默认叫
g++-14(不是g++),运行ls /opt/homebrew/bin/g++*确认真实名称,构建系统里得写对 - Linux / WSL2:确保用的是 Linux 版 Sublime(不是 Windows 版),且
which g++有输出;WSL2 用户若用 Windows 版 Sublime,根本调不动 WSL 里的g++
写一个能定位错误行的 C++.sublime-build
默认的 C++ 构建系统不支持双击跳转到报错位置,关键在 file_regex 必须匹配 GCC 12+ 实际输出格式(如 main.cpp:5:12: error:)。
- 菜单栏 → Tools → Build System → New Build System…,粘贴以下内容:
{ "shell_cmd": "g++ -std=c++17 -Wall \"${file}\" -o \"${file_path}/${file_base_name}\"", "file_regex": "^(..[^:]*):([0-9]+):([0-9]+):? (.*)$", "working_dir": "${file_path}", "selector": "source.c++, source.cpp", "variants": [ { "name": "Run", "shell_cmd": "cd \"${file_path}\" && \"${file_path}/${file_base_name}\"" } ] }-
-std=c++17可按需改为c++11或c++20;-Wall建议保留,能提前暴露隐患 - Windows 用户注意:
&&是 CMD 语法,PowerShell 不兼容;如用 PowerShell,需改用;并调整引号逻辑
Windows 下解决控制台一闪而过和中文乱码
直接运行可执行文件后窗口立即关闭,且 std::cout << "你好"; 可能显示乱码——这不是 Sublime 的问题,而是 Windows 控制台默认编码和行为限制。
立即学习“C语言免费学习笔记(深入)”;
- 在代码末尾加
std::cin.get();或system("pause");(后者仅限 Windows) - 避免用 UTF-8 with BOM 编码保存源文件;Sublime 中应设为 UTF-8(无 BOM)
- 若仍乱码,不要硬改
chcp 65001,推荐装Terminus插件,在终端里运行,它原生支持 UTF-8 - 更稳妥的做法:把
shell_cmd改成启动 CMD 窗口并暂停,例如:"start cmd /c \"\"${file_path}/${file_base_name}.exe\" & pause\""(注意 Windows 下可执行文件要带.exe后缀)
多文件项目或含头文件依赖时,别指望 Sublime 构建系统自动分析依赖;这时候必须用 Makefile,或者直接换 VS Code / CLion —— 这不是配置技巧问题,是工具能力边界。


















