sublime text不原生支持cmake,中大型c++/qt项目必须使用cmake tools插件;手写json构建系统仅适用于极简单target场景,否则必现configure卡死、build报unknown option --config等错误。

Sublime Text 本身不支持 CMake 原生集成,中大型 C++/Qt 项目必须用 CMake Tools 插件;手写 JSON 构建系统只适用于单 target、无 Qt/Boost/自定义 install 的极简场景,否则 configure 卡死、build 报 Unknown option --config、target 列表为空是必然结果。
为什么直接写 cmd 调 cmake --build 会失败
常见现象是构建面板报 Unable to find cmake 或 Unknown option --config,根本原因不是 Sublime 配置错,而是命令链没对齐:
-
cmake和make(或mingw32-make)必须在 CMD/PowerShell 中能直接运行;Windows 用户若用 MinGW,make实际命令名是mingw32-make,不能照抄 Linux 配置 -
cmd字段只允许一个键值对,写两行"cmd": ["cmake ."]和"cmd": ["make"]会被后一个覆盖——JSON 不允许多个同名 key -
cmake --build是 CMake 3.13+ 才稳定支持的接口,旧版(如 3.10)会直接报错;必须降级用make -C build或mingw32-make -C build - Windows 路径分隔符是反斜杠,
./build/myapp在 CMD 下无效,得写成build\myapp.exe;PowerShell 更麻烦,需显式加"shell": true并用cmd /c包裹
CMake Tools 插件必须打开文件夹,不是打开单个 CMakeLists.txt
插件靠扫描项目根目录下的 CMakeLists.txt + 缓存 + Kit 元数据联动工作。如果只是双击打开一个 CMakeLists.txt 文件,插件压根不会激活,Ctrl+Shift+P 里搜不到 CMake: Configure:
Visual Studio 18.8.1 官方固定版本安装引导程序,当前条目使用微软发布历史中的 Professional Web Installer,适合旧项目兼容、环境回退、复现特定构建链和排查版本差异等场景。
- 正确操作是
File → Open Folder…,选整个项目根目录(含CMakeLists.txt和源码子目录) - 首次
CMake: Configure时提示选择 Kit,Kit 名称必须和你本地安装的编译器/Qt 版本严格匹配,例如Qt 6.7.2 (MinGW 11 64-bit);若显示Visual Studio 17 2022却没装对应 MSVC 工具集,configure 必然卡住 - Qt 项目常见失败原因是
find_package(Qt6 REQUIRED)没指定PATHS,导致插件找不到qmake或 cmake 配置模块;需在CMakeLists.txt里补一句set(CMAKE_PREFIX_PATH "C:/Qt/6.7.2/mingw_64")(路径按实际调整)
configure 后生成的 build/ 目录不能手动删
否则插件状态错乱,比如 target 列表变空、re-configure 失败、clangd 补全失效:
- 要重来就用
CMake: Delete Cache and Re-configure,它会安全清理缓存并重建元数据 - 光有
CMake Tools不等于有智能补全;clangd需要准确的compile_commands.json,而它不会自动生成——必须由 CMake 显式导出:cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - 导出后,把
build/compile_commands.json软链接或复制到项目根目录,再重启clangd(或重启 Sublime),补全才真正可用
最易被忽略的是 Kit 名称与本地 Qt/MSVC 安装版本的精确匹配,以及 compile_commands.json 必须由 CMake 导出而非手动生成——这两点一错,整个构建+补全链就断在看不见的地方。










