VS設定 LLVM-Clang 編譯器進行編譯C++專案

Jeffxue發表於2024-08-07

在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 編譯器,如下圖所示:
VS設定 LLVM-Clang 編譯器進行編譯C++專案

建立或開啟C++專案,在屬性中進行設定平臺工具集LLVM(Clang-cl),如下圖所示:
VS設定 LLVM-Clang 編譯器進行編譯C++專案

在該設定屬性下即可自動呼叫 LLVM-Clang 編譯器進行構建C++專案。該方式預設使用的是 Clang v12的版本,無法進行自定義設定自己需要的 Clang 版本。

使用自定義版本的 LLVM-Clang 編譯器

如果需要使用自定義版本的 LLVM-Clang 編譯器進行構建C++專案,需要進行如下操作:

1、安裝對應的編譯器和構建工具

(1)安裝所需要的 LLVM-Clang 編譯器,需要自己從原始碼編譯或下載需要的LLVM-Clang編譯器,LLVM 下載地址
(2)確保VS已經安裝了 適用於<當前VS版本>的C++ Clang-cl生成工具,如下圖所示:
VS設定 LLVM-Clang 編譯器進行編譯C++專案

2、設定平臺工具集及為 LLVM(clang-cl)

開啟或建立C++專案,選擇 平臺工具集LLVM(clang-cl),如下圖所示:
VS設定 LLVM-Clang 編譯器進行編譯C++專案
此時進行編譯會報錯 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所在路徑為例,如下圖

VS設定 LLVM-Clang 編譯器進行編譯C++專案 VS設定 LLVM-Clang 編譯器進行編譯C++專案

因此該檔案對應的內容如下:

<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

相關文章