在VS中默认的C++编译器一般为 MSVC
编译器,可以根据自己的需要将其设置为 LLVM-Clang
编译器。主要有两种方案:
1)直接使用 Visual Studio Installer
来自动下载对应的 Clang 编译器和构建工具,后续无需再进行配置,便可直接使用。
2)使用自己编译或者单独下载的 LLVM-Clang
编译器,以及通过 Visual Studio Installer
下载对应的构建工具来进行使用。
通过Visual Studio Installer
来自动下载对应的 Clang 编译器和构建工具
该方案操作简单,无需太多配置,启动 Visual Studio Installer
,在单个组件处同时选择 C++ Clang 对应的生成工具 和 适用于Windows的C++ Clang 编译器,如下图所示:
创建或打开C++项目,在属性中进行设置平台工具集为 LLVM(Clang-cl),如下图所示:
在该设置属性下即可自动调用 LLVM-Clang
编译器进行构建C++项目。该方式默认使用的是 Clang v12的版本,无法进行自定义设置自己需要的 Clang 版本。
使用自定义版本的 LLVM-Clang
编译器
如果需要使用自定义版本的 LLVM-Clang
编译器进行构建C++项目,需要进行如下操作:
1、安装对应的编译器和构建工具
(1)安装所需要的 LLVM-Clang
编译器,需要自己从源码编译或下载需要的LLVM-Clang
编译器,LLVM 下载地址。
(2)确保VS已经安装了 适用于<当前VS版本>的C++ Clang-cl生成工具,如下图所示:
2、设置平台工具集及为 LLVM(clang-cl)
打开或创建C++项目,选择 平台工具集为 LLVM(clang-cl)
,如下图所示:
此时进行编译会报错 Cannot find LLVM toolset version '12.0.0'
,由于默认的Clang版本为 v12.0.0,默认的位置为 C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm\x64\lib\clang\12.0.0
。因此还要告诉VS自定义 Clang 的根目录位置和版本号,否则VS将无法找到该编译器。
3、设置自定义LLVM的位置和版本号
创建 Directory.build.props
文件,然后将该文件添加到根解决方案目录中(即.sln所在目录),以将它应用于解决方案中的所有项目。该文件中的内容主要为:
LLVMInstallDir
:LLVM 的根目录LLVMToolsVersion
:LLVM 的版本号,为 根目录\lib\clang下的目录名称
以本机的LLVM所在路径为例,如下图
因此该文件对应的内容如下:
<Project><PropertyGroup><LLVMInstallDir>D:\Programs\clang+llvm-18.1.8-x86_64-pc-windows-msvc</LLVMInstallDir><LLVMToolsVersion>18</LLVMToolsVersion></PropertyGroup>
</Project>
此时进行编译将会直接调用指定位置,指定版本的LLVM-Clang 进行编译构建当前的C++项目。
[参考资料]
Visual Studio 项目中的 Clang/LLVM 支持
LLVM Download Page
Visual Studio 2022 中使用 Clang