根本原因是系统未安装g++或sublime无法找到其路径;需先验证g++ --version,再依系统安装对应编译器并配置path,修正.sublime-build文件中的shell_cmd、file_regex及路径引号,避免中文路径,添加std::cin.get()或终端运行调试。

Sublime Text 编译 C++ 报错 “g++ not found”
根本原因是系统没装编译器,或 Sublime 找不到 g++ 路径。Windows 默认没有 g++,macOS 自带的 clang++ 不叫 g++,Linux 也得手动装 build-essential(Ubuntu/Debian)或 gcc-c++(CentOS/Fedora)。
实操建议:
立即学习“C++免费学习笔记(深入)”;
- 先在终端里运行
g++ --version,能输出版本号才算装好;不行就去装 MinGW-w64(Windows)、Xcode Command Line Tools + Homebrew install gcc(macOS)、sudo apt install build-essential(Ubuntu) - Windows 用户装完 MinGW 后,必须把
mingw64/bin(或类似路径)加进系统PATH环境变量,否则 Sublime 启动时读不到 - macOS 如果只用
clang++,可以改 Sublime 的构建系统,把命令从g++换成clang++,避免硬依赖
Sublime 构建系统(.sublime-build)写法不对
常见错误是直接复制网上的 JSON,但没改 file_regex 或漏了 shell_cmd 中的引号,导致中文路径出错、报错行号不跳转、或者静默失败。
实操建议:
立即学习“C++免费学习笔记(深入)”;
- Windows 推荐用
shell_cmd:g++ "${file}" -o "${file_path}/${file_base_name}" && "${file_path}/${file_base_name}.exe"—— 注意双引号包裹路径,&&保证只在编译成功后才运行 - macOS/Linux 把末尾的
.exe去掉,运行命令改成./${file_base_name} -
file_regex必须设为"^(..[^:]*):([0-9]+):([0-9]+):\s*(.*)$",否则点击错误信息跳不到对应行 - 别用
cmd(Windows)字段,它不支持管道和多命令,一律用shell_cmd
中文路径或文件名导致编译失败
Sublime 传给 g++ 的路径如果含中文,Windows 下大概率报 fatal error: no input files,本质是编码传递断裂,不是 Sublime 本身 bug。
实操建议:
立即学习“C++免费学习笔记(深入)”;
- 开发时项目路径、文件名全程用英文+下划线,这是最省事的解法
- 非要用中文?Windows 可临时改系统区域设置为“Beta: 使用 Unicode UTF-8 提供全球语言支持”,但会影响其他软件,不推荐
- Sublime 构建系统里不要对路径做额外
encode或decode,它内部已按 UTF-8 处理,加反而坏事
调试没输出 / 运行一闪而过
C++ 控制台程序执行完就退出,Sublime 默认构建系统不会暂停窗口,所以你看不到输出结果,容易误判为“没运行”或“崩溃”。
实操建议:
立即学习“C++免费学习笔记(深入)”;
- 加一句
std::cin.get();在main()结尾,等用户敲回车再退出 - 更稳妥的是用终端运行:把构建系统里的运行命令拆出来,在系统终端里手动执行生成的可执行文件,比如
./hello或hello.exe - 别依赖 Sublime 内置的面板做交互式输入,它的 stdin 是单次缓冲,
std::cin >> x后再输内容可能卡住








