g++在sublime报“not found”是因gui启动不继承终端path,需先终端验证g++--version有效;windows加mingw-bin到系统path并重启sublime,macos用g++-14或建软链,linux/wsl2确保使用对应系统版sublime且which g++非空。

g++ 命令在 Sublime 里报 “not found”,不是构建系统写错了,而是 Sublime 根本没找到编译器——GUI 启动不继承终端的 PATH,这一步卡住,后面全白搭。
先确认 g++ 真正在系统里可用
终端里 g++ --version 有输出,不代表 Sublime 能调用。GUI 应用(包括从开始菜单、Dock 或桌面图标启动的 Sublime)启动时环境变量是隔离的。
- Windows:安装
MinGW-w64时必须勾选 “Add to PATH”;若已装完,手动把C:\mingw64\bin(或你实际安装路径下的bin目录)加进「系统环境变量」PATH,然后彻底关闭并重启 Sublime - macOS:Homebrew 安装的 GCC 默认叫
g++-14(版本号可能为 13/15),运行ls /opt/homebrew/bin/g++*确认真实名称;想用g++命令,得建软链:sudo ln -s /opt/homebrew/bin/g++-14 /usr/local/bin/g++ - Linux / WSL2:确保用的是 Linux 版 Sublime(不是 Windows 版),且
which g++输出非空;WSL2 用户若从 Windows 启动 Sublime,它压根访问不到 WSL 里的g++
C++.sublime-build 里该用 cmd 还是 shell_cmd
二者不能混,选错会导致路径含空格崩、&& 不识别、中文路径报 no input files。
- 推荐用
cmd数组格式(更可控):"cmd": ["g++-14", "-std=c++17", "-Wall", "${file}", "-o", "${file_path}/${file_base_name}"]—— 每个参数单独写,Sublime 自动处理引号和空格 - Windows 下必须配
"shell": true,否则cmd字段不识别&&或start类命令 - 别用
shell_cmd写多命令(比如"g++ && ./a.out"):PowerShell 不认&&,Mac/Linux 的 shell 可能解析异常;若硬要用,得写成"shell_cmd": "g++-14 -o ${file_path}/${file_base_name} ${file} && ./${file_base_name}",且 macOS/Linux 去掉.exe后缀
为什么 Ctrl+B 编译成功但输出一闪而过
这不是错误,是 Sublime 构建面板默认行为:程序执行完就清屏。别用 system("pause"),它跨平台失效、还可能被杀软拦截。
- 最稳解法:在
main()结尾加std::cin.get();,回车才退出 - Windows 下想点一下就运行可执行文件,
variants里改用:"cmd": ["cmd", "/c", "start", "cmd", "/k", "${file_path}/${file_base_name}.exe"] - macOS/Linux 直接运行:
"cmd": ["bash", "-c", "cd '${file_path}' && ./${file_base_name}"]
~/.zshrc 或 PATH 设置(尤其 macOS/Linux GUI 启动),所以终端能跑 ≠ Sublime 能调;Windows 用户若用快捷方式启动 Sublime,也要确保 PATH 已全局生效。C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











