能直接用g++ --version在终端输出版本号才说明编译器安装正确;否则sublime配置再完善也无效,因其gui启动不继承shell的path环境变量。

能直接用 g++ --version 在终端输出版本号,才说明编译器装对了;否则 Sublime 再怎么配都是空转。
g++ 命令在终端能跑,但 Ctrl+B 报 “command not found”
这不是 Sublime 配错了,是它根本没继承你终端里的 PATH。GUI 应用(包括 Windows 的 Sublime、macOS 的 Dock 启动的 Sublime)启动时不会自动读取 shell 配置文件(如 ~/.zshrc 或 PATH 环境变量),所以即使终端里 g++ 正常,Sublime 也找不到。
- Windows:安装 MinGW-w64 时务必勾选 “add to PATH”,若漏了,手动把类似
C:mingw64in的路径加进系统环境变量 - macOS:用
brew install gcc装完后,g++实际叫g++-14(2026 年主流版本),构建系统里得写成"cmd": ["g++-14", ...] - Linux(含 WSL2):确认你用的是 Linux 版 Sublime(不是 Windows 版),否则无法调用 WSL 里的
g++
Build System 的 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 构建系统,
"cmd"改成gcc,"selector"设为"source.c" - 别偷懒改
"selector": "source.c, source.cpp"—— 这会让gcc去编译.cpp,或让g++去编译.c,两边都容易翻车 - 文件名和路径含中文?大概率触发
fatal error: no input files。开发阶段全程用英文名+下划线,是最省事的解法
真正卡住人的地方,往往不是 JSON 怎么写,而是 g++ 命令本身在 Sublime 里能不能被唤起、它的报错格式有没有被正则捕获、以及程序输出有没有被窗口吞掉——这三处不摸清,配一百遍构建系统也没用。
13万字C语言保姆级教程(深入):立即使用
在学习笔记中,你将探索c语言的核心概念和高级技巧!








