使用MSVC2019与Ninja时配置阶段出现RC工具错误
解决CMake+Ninja构建VS2019项目时RC工具失败的问题
从报错信息来看,核心问题是RC资源编译器(rc.exe)和MT清单工具(mt.exe)未被正确找到,导致链接阶段执行资源编译命令失败。以下是针对性的解决步骤:
1. 使用VS开发者命令提示符执行构建
不要在普通终端运行cmake,打开VS2019对应的开发者命令提示符(比如「x64 Native Tools Command Prompt for VS 2019」),该提示符会自动配置好VS工具链的环境变量,包括rc.exe、mt.exe的路径。打开后直接执行:
cmake . -GNinja
2. 手动配置工具链路径(如果不用开发者提示符)
如果必须在普通终端操作,手动将VS工具链和Windows Kits的路径添加到系统PATH中:
- 对于x64架构,添加以下路径(替换为你的实际安装路径):
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64(Windows Kits版本号根据你的系统调整)
也可以在cmake命令中直接指定RC和MT工具的路径:
cmake . -GNinja ^ -DCMAKE_RC_COMPILER="C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/rc.exe" ^ -DCMAKE_MT_COMPILER="C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x64/mt.exe"
3. 排查vcpkg相关配置
报错中出现了vcpkg的applocal.ps1脚本调用,若项目依赖vcpkg:
- 确保vcpkg环境已正确初始化,执行
vcpkg integrate install完成配置 - 在cmake命令中明确指定vcpkg工具链文件:
cmake . -GNinja -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake
若暂时不需要vcpkg,可删除项目中相关的vcpkg配置,避免cmake调用其脚本。
4. 清理缓存后重新构建
旧的cmake缓存可能导致配置冲突,先删除build目录下的缓存文件:
rmdir /s /q CMakeFiles del CMakeCache.txt
再重新执行cmake构建命令。
内容的提问来源于stack exchange,提问作者yano
相关产品推荐
相关产品推荐

