Visual Studio 项目中的 Clang/LLVM 支持

Visual Studio 2019 和 Visual Studio 2022 中提供对 CMake 和 MSBuild 项目的 Clang/LLVM 支持。

可以将 Visual Studio 2019 版本 16.2 及更高版本与 Clang/LLVM 配合使用以编辑、生成和调试面向 Windows 或 Linux 的 C++ Visual Studio 项目 (MSBuild)。

安装

若要在 Visual Studio 中获得最佳 IDE 支持,建议使用适用于 Windows 的最新 Clang 编译器工具。 如果尚未安装这些工具,在可以通过打开 Visual Studio 安装程序并在“使用 C++ 的桌面开发”可选组件下选择“适用于 Windows 的 C++ Clang 工具”来安装它们。 你可能希望使用计算机上的现有 Clang 安装;如果是这样,请选择“适用于 v142 生成工具的 C++ Clang-cl”或“适用于 v143 生成工具的 C++ Clang-cl”。

安装

若要在 Visual Studio 中获得最佳 IDE 支持,建议使用适用于 Windows 的最新 Clang 编译器工具。 如果尚未安装这些工具,在可以通过打开 Visual Studio 安装程序并在“使用 C++ 的桌面开发”可选组件下选择“适用于 Windows 的 C++ Clang 工具”来安装它们。 你可能希望使用计算机上的现有 Clang 安装;如果是这样,请选择“适用于 LLVM (clang-cl) 工具集的 MSBuild 支持”。

Microsoft C++ 标准库至少需要 Clang 8.0.0。

Visual Studio 2019 安装程序的屏幕截图

已选择安装程序中的“单个组件”选项卡。 已选择适用于 Windows 的 C++ Clang 编译器。 还选择了 v142 生成工具的 C++ Clang-cl (x64/x86)。

Visual Studio 2022 安装程序的屏幕截图。

已选择安装程序中的“单个组件”选项卡。 已选择适用于 Windows 的 C++ Clang 编译器。 还选择了 MSBuild 对 LLVM (clang-cl) 工具集的支持。

更高版本的 Visual Studio 提供更新版本的 Clang 工具集。 Clang 的捆绑版本会自动更新,以随时了解标准库的 Microsoft 实现中的更新。 例如,Visual Studio 2019 版本 16.11 包括了 Clang v12。

配置 Windows 项目以使用 Clang 工具

若要配置 Visual Studio 项目以使用 Clang,请右键单击“解决方案资源管理器”中的项目节点,然后选择“属性”。 通常,应首先选择对话框顶部的“所有配置”。 然后,在“常规”>“平台工具集”下,选择“LLVM (clang-cl)”,然后选择“确定”

Visual Studio 项目“属性页”对话框的截图。

项目属性页打开到“配置属性”>“常规”页。 已选择“平台工具集”下拉列表,其中选择了 LLVM (clang-cl)。

如果使用与 Visual Studio 捆绑的 Clang 工具,则无需执行其他步骤。 对于 Windows 项目,Visual Studio 默认在 clang-cl 模式下调用 Clang。 它链接到标准库的 Microsoft 实现。 默认情况下,clang-cl.exe 位于 *%VCINSTALLDIR%\Tools\Llvm\bin\**%VCINSTALLDIR%\Tools\Llvm\x64\bin\*

如果使用自定义 Clang 安装,可以更改 LLVMInstallDir 属性的值。 有关详细信息,请参阅设置自定义 LLVM 位置

配置 Linux 项目以使用 Clang 工具

对于 Linux 项目,Visual Studio 使用 Clang GCC 兼容前端。 项目属性和几乎所有编译器标志都相同

配置 Visual Studio Linux 项目配置以使用 Clang:

  1. 右键单击“解决方案资源管理器”中的项目节点,并选择“属性”
  2. 通常,应首先选择对话框顶部的“所有配置”
  3. 如果使用适用于 Linux 的 Windows 子系统 (WSL),请在“常规”>“平台工具集”下选择“适用于 Linux 的 Windows 子系统的 Clang”。 如果使用远程计算机或 VM,请选择“适用于远程 Linux 的 Clang”
  4. 按“确定”。

Visual Studio 2019 项目“属性页”对话框的截图

项目属性页打开到“配置属性”>“常规”页。 已选择“平台工具集”,并选择了选项列表中的 LLVM (clang- c l)。

在 Linux 上,Visual Studio 在默认情况下使用在 PATH 环境属性中找到的第一个 Clang 位置。 如果使用自定义 Clang 安装,可更改 LLVMInstallDir 属性的值,或在“项目”>“属性”>“配置属性”>“VC++ 目录”>“可执行文件目录”下输入路径。 有关详细信息,请参阅设置自定义 LLVM 位置

设置自定义 LLVM 位置和工具集

要设置 LLVM 的自定义路径并为一个或多个项目设置自定义 LLVM 工具集版本,请创建Directory.build.props文件。 然后,将该文件添加到任意项目的根文件夹。 可以将它添加到根解决方案文件夹,以将它应用于解决方案中的所有项目。 该文件应如以下示例所示(但使用实际的 LLVM 路径和版本号):

<Project>
  <PropertyGroup>
    <LLVMInstallDir>C:\MyLLVMRootDir</LLVMInstallDir>
    <LLVMToolsVersion>15.0.0</LLVMToolsVersion>
  </PropertyGroup>
</Project>

在 IDE 中设置自定义的 LLVM 工具集版本

从 Visual Studio 2019 版本 16.9 开始,可以在 Visual Studio 中为 LLVM 设置自定义工具集版本。 要在项目中设置此属性:

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“常规”属性页

  3. 如果尚未设置“平台工具集”属性,请将其修改为“LLVM (clang-cl)”。 选择“应用”以保存更改

  4. 选择“配置属性”>“高级”属性页

  5. 将“LLVM 工具集版本”属性修改为首选版本,然后选择“确定”保存更改。

“LLVM 工具集版本”属性仅在选择 LLVM 平台工具集时显示。

Directory.build.props 文件添加到项目或解决方案时,在项目“属性页”对话框中,设置显示为默认值。 但是,在 Visual Studio 中对这些属性的更改将覆盖 Directory.build.props 文件中的设置。

设置属性、编辑、生成和调试

设置 Clang 配置之后,再次右键单击项目节点,然后选择“重新加载项目”。 现在可以使用 Clang 工具生成和调试项目。 Visual Studio 会检测到在使用 Clang 编译器,并提供 IntelliSense、突出显示、导航和其他编辑功能。 错误和警告会显示在“输出窗口”中。 Clang 配置的项目属性页与 MSVC 的类似。 但是,某些依赖于编译器的功能(如“编辑”和“继续”)不可用于 Clang 配置。 可以设置在属性页中不可用的 Clang 编译器或链接器选项。 可在“配置属性”>“C/ C++ (或链接器)”>“命令行”>“其他选项”下的属性页中手动添加它。

调试时,可以使用断点、内存和数据可视化以及大多数其他调试功能。

Visual Studio 调试示例应用的屏幕截图

可见的应用部分创建一个字符串向量,并向其中添加一些字符串。 执行已在代码断点处停止:v.push_back("Clang/LLVM");."