编译LLVM时cl.exe无法编译测试程序的问题求助
解决CMake + Ninja构建LLVM时C编译器检测失败的问题
从你提供的错误日志来看,核心问题是CMake找不到mt.exe(Manifest Tool),同时rc.exe(Resource Compiler)的执行也失败了,这导致链接阶段无法完成简单测试程序的构建。下面是具体的解决方案:
1. 确保使用正确的开发者命令提示符
你当前使用的是x86架构的VS命令环境,这类环境有时没有完整配置Windows SDK工具的路径。建议切换到x64 Native Tools Command Prompt for Visual Studio 2017(如果你的系统是64位),这个环境会自动配置好所有VS和Windows SDK工具的环境变量,包括mt.exe和rc.exe。
2. 手动指定mt.exe和rc.exe的路径
如果切换命令提示符后问题依然存在,可以在CMake命令中手动指定这两个工具的路径:
cmake -G Ninja ../llvm ^ -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" ^ -DLLVM_BUILD_TESTS=ON ^ -DCMAKE_MT="C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/mt.exe" ^ -DCMAKE_RC_COMPILER="C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/rc.exe"
注意:
Windows Kits的版本号(比如10.0.17763.0)需要根据你安装的Windows SDK版本调整,你可以在C:/Program Files (x86)/Windows Kits/10/bin/目录下找到对应的版本文件夹。
3. 清理Build目录后重新配置
CMake会缓存之前的配置信息,建议先删除build目录下的所有文件,再重新执行上述CMake命令,避免缓存的错误配置干扰。
4. 验证工具是否可正常调用
在开发者命令提示符中,分别执行以下命令,确认工具能正常运行:
rc /? mt /?
如果命令提示“找不到文件”,说明环境变量中没有包含这些工具的路径,你需要手动将它们的路径添加到PATH环境变量中:
rc.exe通常在C:/Program Files (x86)/Windows Kits/10/bin/<SDK版本>/x86mt.exe通常在C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86
内容的提问来源于stack exchange,提问作者Jon marsh
相关产品推荐
相关产品推荐

