[开发工具] STM32CubeIDE CMake 搭配 Ninja

[复制链接]
101|2
我的牙白 发表于 2026-5-25 10:31 | 显示全部楼层 |阅读模式
请教怎么让 CubeIDE 在 CMake 工程里使用 Ninja 作为构建工具?
我用的是 macOS,在终端里 ninja 是能正常找到并执行的。
我的确找到了修改生成器的选项,但只有 Unix Makefiles 这一个选项。


stormwind123 发表于 2026-5-25 14:55 | 显示全部楼层
CubeIDE 的 CMake 插件版本太老了,根本没把 Ninja 放进下拉列表里。
elephant00 发表于 2026-5-25 14:56 | 显示全部楼层
我之前也是只看到 Unix Makefiles,后来发现得手动把 Ninja 路径写进 CMake 工具链文件才行。
才没有脸红 发表于 2026-5-25 15:12 | 显示全部楼层
ST 官方论坛上这问题好多人问,基本结论就是:IDE 层不支持,只能绕着走。
spicy 发表于 2026-5-25 15:29 | 显示全部楼层
检查一下 CubeIDE 里的 CMake 版本,低于 3.15 的话大概率不支持 Ninja 生成器。
classroom 发表于 2026-5-25 15:55 | 显示全部楼层
可以直接在 CMakeLists.txt 里加 set(CMAKE_GENERATOR "Ninja") 强制指定,不过 CubeIDE 可能不认。
stormwind123 发表于 2026-5-25 16:29 | 显示全部楼层
可以试试把 Ninja 的完整路径写进 CMake 的 Generator 选项,像 /usr/local/bin/ninja 这样。
cr315 发表于 2026-5-25 16:56 | 显示全部楼层
macOS 上装 Ninja 用 brew install ninja 最稳,CubeIDE terminal 能读到 PATH 就行。
海滨消消 发表于 2026-5-25 17:22 | 显示全部楼层
最简单的办法:CubeIDE 只用来写代码和调试,构建交给终端里的 Ninja,各干各的。
七毛钱 发表于 2026-5-25 17:30 | 显示全部楼层
说实话 STM32CubeIDE 对 CMake 的支持就是半成品,别抱太大期望。
duo点 发表于 2026-5-25 17:56 | 显示全部楼层
试试在 CubeIDE 的 CMake 设置里把 -G Ninja 写到额外参数那一栏,暴力指定。
今天会画卧蚕吗 发表于 2026-5-25 18:25 | 显示全部楼层
在 CMakeSettings.json 里手动加 "generator": "Ninja" 这一行,保存后重启 IDE 试试。
flycamelaaa 发表于 2026-5-25 18:57 | 显示全部楼层
其实换用 VS Code + CMake Tools 插件体验比 CubeIDE 好太多了,Ninja 开箱即用。
jcky001 发表于 2026-5-25 19:57 | 显示全部楼层
CubeIDE 本质上是 Eclipse 改的,Eclipse 的 CMake 支持一直都很拉胯。
内政奇才 发表于 2026-5-25 20:32 | 显示全部楼层
macOS 上有些人反馈要把 Ninja 放到 /usr/local/bin 而不是 /opt/homebrew/bin,IDE 才能找到。
onlycook 发表于 2026-5-25 20:57 | 显示全部楼层
在 Preferences → CMake → Tools 里看看有没有"Ninja"的可执行文件路径可以填。
又见江南雨 发表于 2026-5-25 21:31 | 显示全部楼层
不如直接用 CLion,CMake + Ninja 配合是最丝滑的,虽然要花钱。
powerantone 发表于 2026-5-25 21:58 | 显示全部楼层
命令行里 cmake -G Ninja .. && ninja 能跑通,说明环境没问题,就是 IDE 没识别到。
probedog 发表于 2026-5-25 21:58 | 显示全部楼层
有些版本的 CubeIDE 要装额外的 CMake 插件才支持多生成器,去 Help → Marketplace 搜一下。
在海边聆听 发表于 2026-5-25 22:39 | 显示全部楼层
我试过在 CubeIDE 的 CMake 初始配置里加 -DCMAKE_MAKE_PROGRAM=/usr/local/bin/ninja,居然成功了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

165

主题

166

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0