Windows下如何使用VS2019配合自定义安装的LLVM运行CMake?
你之前的配置不生效有两个核心原因:
- Visual Studio生成器使用ClangCL工具集时,默认会调用适配MSVC语法的
clang-cl.exe作为编译器驱动,你指定的普通clang.exe/clang++.exe不符合工具集要求,会被自动替换为VS内置的clang-cl.exe - 系统环境变量中VS内置LLVM的路径优先级高于你自定义安装的LLVM路径,工具集会优先搜索到VS自带的版本
前置准备
先把自定义安装的LLVM 12.0的bin目录(默认路径为C:\Program Files\LLVM\bin)添加到系统环境变量PATH的最前面,优先级要高于VS自带的LLVM路径(即日志中显示的C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/Llvm/x64/bin),修改完成后重启终端让配置生效。
注意:每次修改CMake配置参数前,必须删除构建目录下的
CMakeCache.txt文件和CMakeFiles文件夹,否则旧缓存会覆盖新的参数配置,导致配置不生效。
配置方法
方法1:指定LLVM安装目录(推荐)
直接在CMake命令中添加LLVM_INSTALL_DIR参数指向你自己的LLVM根目录即可,命令如下:
cmake -G "Visual Studio 16 2019" -A x64 -T ClangCL -DLLVM_INSTALL_DIR="C:\Program Files\LLVM" .
该参数会直接告诉CMake和VS ClangCL工具集优先使用你指定目录下的LLVM编译器,不需要额外指定单个编译器路径。
方法2:显式指定clang-cl路径
如果方法1不生效,可以直接指定正确的编译器驱动路径,命令如下:
cmake -G "Visual Studio 16 2019" -A x64 -T ClangCL -DCMAKE_C_COMPILER="C:\Program Files\LLVM\bin\clang-cl.exe" -DCMAKE_CXX_COMPILER="C:\Program Files\LLVM\bin\clang-cl.exe" .
只要指定的是符合工具集要求的clang-cl.exe,CMake就不会自动替换为VS内置的版本。
配置完成后,CMake输出中会显示The C compiler identification is Clang 12.0.0 with MSVC-like command-line,即说明配置生效。
内容的提问来源于stack exchange,提问作者jayatubi
相关产品推荐
相关产品推荐

