如何在 windows 上使用带有 vs2019 和自定义安装的 llvm 的 cmake?

How to use cmake on windows with vs2019 and custom installed llvm?

我发现有人提到使用这样的命令行将 cmake 与 vs2019 和 llvm 工具集一起使用:

cmake -G "Visual Studio 2019" -T ClangCL

但是,这将使用现在为 11.0 的 llvm 版本 installed by the visual studio instanller

我想使用 llvm 的新版本,即 12.0,我已经在其他地方安装了它,但我不知道如何制作 cmake 和 vs 来使用它。


更新:

我尝试通过命令行设置编译器的内容:

E:\my_proj>cmake -G "Visual Studio 16 2019" -A x64 -T "ClangCL" -DCMAKE_C_COMPILER="C:\Program Files\LLVM\bin\clang.exe" -DCMAKE_CXX_COMPILER="C:\Program Files\LLVM\bin\clang++.exe" .
-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.19042.
-- The C compiler identification is Clang 11.0.0 with MSVC-like command-line
-- The CXX compiler identification is Clang 11.0.0 with MSVC-like command-line
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/Llvm/x64/bin/clang-cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/Llvm/x64/bin/clang-cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done

如您所见,cmake 从 vs 安装位置选择了 clang 并忽略了命令行。

如下所述,在使用 VS 生成器时显式设置 CMAKE 标志无效。因此选择 Visual Studio 安装程序安装的默认编译器。

The VS generator produces .vcxproj files and uses MSBuild to actually drive the build. The values of CMAKE_{C,CXX}_COMPILER are computed automatically from the compiler MSBuild chooses so setting them has no effect.