VSCode搭配CMakeTools在MSYS2 UCRT64环境构建C++项目时,CMake错误查找Ninja路径导致构建失败
VSCode搭配CMakeTools在MSYS2 UCRT64环境构建C++项目时,CMake错误查找Ninja路径导致构建失败
看起来你遇到的问题是CMakeTools默认去Mingw64目录找Ninja,但你明明是在UCRT64环境下安装的Ninja,路径不匹配导致报错。我给你几个靠谱的解决办法:
方法一:直接给CMakeTools指定正确的Ninja路径
这是最直接的办法,强制让CMake用UCRT64下的Ninja:
- 打开VSCode,按下
Ctrl+,打开设置面板 - 在搜索框输入
cmake Ninja Path,找到对应的设置项 - 把路径改成
C:/msys64/ucrt64/bin/ninja.exe - 或者你也可以直接在项目的
.vscode/settings.json里手动添加配置:{ "cmake.ninjaPath": "C:/msys64/ucrt64/bin/ninja.exe" }
保存后重新触发CMake配置,应该就能找到正确的Ninja了。
方法二:调整系统环境变量优先级
如果不想每个项目都单独配置,可以调整系统的PATH环境变量,让UCRT64的路径排在Mingw64前面:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在系统变量的
Path里,找到C:\msys64\ucrt64\bin,把它移到C:\msys64\mingw64\bin的上方 - 点击确定保存后,一定要重启VSCode,让新的环境变量生效
方法三:从UCRT64终端启动VSCode
这个方法能让VSCode直接继承UCRT64的完整环境,避免路径混乱:
- 打开MSYS2的UCRT64终端(就是你平时安装UCRT64包的那个终端)
- 在终端里输入
code命令,回车启动VSCode - 用这个方式打开的VSCode,CMake会自动使用UCRT64下的所有工具,包括Ninja、编译器这些
另外,先确认一下你的UCRT64环境里确实装了Ninja:在UCRT64终端里输入ninja --version,如果提示找不到命令,就用pacman -S ninja安装一下。
备注:内容来源于stack exchange,提问作者scarletLife
相关产品推荐
相关产品推荐

