只有终端能运行g++ --version输出版本号,才说明编译器安装正确;否则sublime的构建系统无法调用,因其依赖shell命令而非魔法,且gui应用不自动加载~/.bashrc等环境配置。

能直接在终端运行 g++ --version 输出版本号,才说明编译器装对了;否则 Sublime 里任何构建系统配置都是白搭——它调用的只是 shell 命令,不是魔法。
为什么 Ctrl+B 报 “command not found: g++”
这不是 Sublime 配错了,是它根本没继承你终端里的 PATH。GUI 应用(macOS Dock 启动、Windows 双击、Linux 桌面环境点击)启动时不会读 ~/.zshrc 或 ~/.bashrc,所以即使终端里 g++ 正常,Sublime 也找不到。
- Windows:安装 MinGW-w64 时务必勾选 “add to PATH”;漏了就手动把类似
C:\mingw64\bin的路径加进系统环境变量 - macOS:用
brew install gcc装完后,g++实际叫g++-14(2026 年主流),构建系统里得写成"shell_cmd": ["g++-14", ...] - Linux(含 WSL2):确认你用的是 Linux 版 Sublime(不是 Windows 版),否则无法调用 WSL 里的
g++
file_regex 不匹配导致双击错误不跳转
报错行点不了,八成是 file_regex 和你本地 g++ 输出格式对不上。GCC 12+ 默认报错是 main.cpp:5:12: error: …(冒号分隔),而老配置常写成空格或少一个冒号,一错就失效。
组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,适用于PR审查、增量代码审查、全项目评审和代码质量评分,触发词包括review cpp、cpp代码评审、C++review、代码审查。
- 推荐正则:
"file_regex": "^(..[^:]*):([0-9]+):([0-9]+):\s+(error|warning):\s+(.*)$" - 别删
file_regex字段——没它,错误信息只是纯文本,没法双击定位 - 验证方法:故意写个语法错(比如
int x = ;),编译后看输出是否含xxx.cpp:行号:列号:这种结构,再调整正则
编译成功但程序一闪而过,或者输入被跳过
Sublime 构建系统默认不暂停控制台,C++ 控制台程序执行完立刻退出,面板只闪一下就清空,你以为失败了,其实只是太快。
- 最简单办法:在
main()结尾加一行std::cin.get();,等用户按回车再退出 - 别依赖
system("pause")——它在 macOS/Linux 下无效,且不安全 - 如果想自动运行并停留,构建系统里用
"shell_cmd"+&&组合,例如:"shell_cmd": "g++-14 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" && echo '--- Press Enter to exit ---' && read -n1"(Linux/macOS) - Windows 用户注意:
shell_cmd才支持&&,cmd字段不支持管道和多命令
为什么 .c 文件用 C++ Build System 编译会出怪错
因为 g++ 默认把 .c 当 C++ 源码处理,比如 bool、nullptr、函数重载这些 C 里没有的特性会被启用,导致编译失败或行为异常。
- 正确做法:为
.c单独建一个 C 构建系统,用gcc;为.cpp用g++ -
selector别混写成"source.c, source.cpp",除非你明确接受.c被当 C++ 解析 - 如果硬要用
g++编译.c,加-x c参数强制指定语言:"shell_cmd": "g++ -x c -std=c17 \"${file}\" -o \"${file_path}/${file_base_name}\""
真正容易被忽略的点是:构建系统里所有路径变量(如 ${file})都必须用双引号包裹,尤其路径含空格或中文时;不加引号,g++ 会把路径断成多个参数,直接报 no input files。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!










