分享方式:


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 編譯器。 已選取 LLVM (clang-cl) 的 MSBuild 支援工具組。

較新版本的 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. 在 [一般]>[平台工具組] 底下,如果您使用 Windows 子系統 Linux 版 (WSL),請選擇 [Windows 子系統 Linux 版的 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");."