Visual Studio CMake 项目中的 Clang/LLVM 支持

从 Visual Studio 2019 开始,已提供 Clang 支持。

可以将 Clang 和 Visual Studio 配合使用来编辑和调试以 Windows 或 Linux 为目标的 C++ CMake 项目。

Windows:从 Visual Studio 2019 版本 16.1 开始,Visual Studio 支持在面向 Windows 的 CMake 项目中使用 Clang/LLVM 进行编辑、生成和调试。

Linux:对于 Linux CMake 项目,不需要特殊的 Visual Studio 支持。 可以使用发行版的包管理器安装 Clang,并在 CMakeLists.txt 文件中添加适当的命令。

安装

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

Visual Studio 安装程序单个组件页的屏幕截图,其中显示了可供安装的 Clang 组件。

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

Visual Studio 安装程序单个组件页的屏幕截图,其中显示了可供安装的 Clang 组件。

创建新配置

向 CMake 项目添加新的 Clang 配置:

  1. 右键单击“解决方案资源管理器”中的 CMakeLists.txt,然后选择“项目的 CMake 设置”

  2. 在“配置”下,按“添加配置”按钮

    “CMake 设置”对话框顶部的控件的屏幕截图,其中突出显示了“添加配置”控件。

  3. 选择所需的 Clang 配置(请注意,Windows 和 Linux 具有单独的 Clang 配置),然后按“选择”

    Clang 配置的“将配置添加到 CMake 设置”对话框的屏幕截图。

  4. 若要对此配置进行修改,请使用“CMake 设置编辑器”。 有关详细信息,请参阅在 Visual Studio 中自定义 CMake 生成设置

修改现有配置以使用 Clang

若要修改现有配置以使用 Clang,请执行以下步骤:

  1. 右键单击“解决方案资源管理器”中的 CMakeLists.txt,然后选择“项目的 CMake 设置”

  2. 在“常规”下,选择“工具集”下拉列表并选择所需的 Clang 工具集

    显示已选中“工具集”且已突出显示 clang cl x 86 的“常规”对话框的屏幕截图。

自定义 Clang 位置

默认情况下,Visual Studio 在两个位置查找 Clang:

  • (Windows) Visual Studio 安装程序随附的 Clang/LLVM 的内部安装副本。
  • (Windows 和 Linux)PATH 环境变量。

可通过在“CMAKE 设置”中设置“CMAKE_C_COMPILER”和“CMAKE_CXX_COMPILER”CMAKE 变量,来指定其他位置

已突出显示 C Make C X X 编译器的“C Make 设置”对话框的屏幕截图。

Clang 兼容性模式

对于 Windows 配置,CMake 默认情况下会在 clang-cl 模式下调用 Clang,并与标准库的 Microsoft 实现链接。 默认情况下,clang-cl.exe 位于 C:\Program Files (x86)\Microsoft Visual Studio\2019\Common7\IDE\CommonExtensions\Microsoft\Llvm\bin 中。

可以在“CMake 设置”的“CMake 变量和缓存”下修改这些值。 单击“显示高级变量”。 向下滚动找到“CMAKE_CXX_COMPILER”,然后单击“浏览”按钮以指定其他编译器路径

编辑、生成和调试

设置 Clang 配置后,可以生成和调试项目。 Visual Studio 会检测到在使用 Clang 编译器,并提供 IntelliSense、突出显示、导航和其他编辑功能。 错误和警告会显示在“输出窗口”中。

调试时,可以使用断点、内存和数据可视化以及大多数其他调试功能。 某些依赖于编译器的功能(如“编辑”和“继续”)不可用于 Clang 配置。

Visual Studio 调试程序正在调试 CMake Clang 项目的屏幕截图。