在 Visual Studio 中使用 Clang-Tidy
支援 Clang-Tidy 需要 Visual Studio 2019 16.4 版或更新版本。 若要查看此版本的文件,請將本文的 Visual Studio 版本 選取器控制項設定為 Visual Studio 2019 或更新版本。 它位於本頁目錄的頂端。
無論您是使用 Clang 還是 MSVC 工具組,Code Analysis 現在都可針對 MSBuild 和 CMake 專案,以原生方式支援 Clang-Tidy。 Clang-Tidy 檢查可以作爲背景程式碼分析的一部分執行。 它們會顯示為編輯器內警告 (波浪線),並顯示在 [錯誤清單] 中。
自 Visual Studio 2019 16.4 版開始,提供 Clang-Tidy 的支援。 當您在 Visual Studio 安裝程式中選擇 C++ 工作負載時,會自動包含它。
Clang-Tidy 是使用 LLVM/clang-cl 工具組時的預設分析工具,可在 MSBuild 和 CMake 中使用。 您可以在使用 MSVC 工具組時加以設定,以與標準 Code Analysis 體驗同時運行或取代它。 如果您使用 clang-cl 工具組,則無法使用 Microsoft Code Analysis。
Clang-Tidy 會在編譯成功之後執行。 您可能需要解決原始程式碼錯誤,以取得 Clang-Tidy 結果。
MSBuild
您可以將 Clang-Tidy 設定為 Code Analysis 的一部分,並在專案屬性視窗的 [Code Analysis]>[一般] 頁面底下建置。 您可以在 Clang-Tidy 子選單下找到設定工具的選項。
如需詳細資訊,請參閱 如何: 為 C/C++ 專案設定 Code Analysis 屬性。
CMake
在 CMake 專案中,您可以在 CMakeSettings.json
或 CMakePresets.json
中設定 Clang-Tidy 檢查。
Clang-Tidy 可辨識下列索引鍵:
enableMicrosoftCodeAnalysis
: 啟用 Microsoft Code AnalysisenableClangTidyCodeAnalysis
: 啟用 Clang-Tidy 分析clangTidyChecks
: Clang-Tidy 設定。 以逗號分隔要啟用或停用的檢查之清單。 前置-
會停用檢查。 例如,cert-oop58-cpp, -cppcoreguidelines-no-malloc, google-runtime-int
會啟用cert-oop58-cpp
和google-runtime-int
,但會停用cppcoreguidelines-no-malloc
。 如需 Clang-Tidy 檢查清單,請參閱 Clang-Tidy 文件。
如果未指定任何「啟用」選項,Visual Studio 會選取符合所使用平台工具組的分析工具。
CMake 設定
若要編輯 Clang-Tidy 設定,請開啟 CMake 設定,然後在 CMake 專案設定編輯器中選取 [編輯 JSON]。 您可以使用上述索引鍵,在 CMake 設定 JSON 檔案中填寫 Clang-Tidy 規格。
CMake 設定實作範例如下所示:
{
"configurations": [
{
"name": "x64-debug",
"generator": "Ninja",
....
"clangTidyChecks": "llvm-include-order, -modernize-use-override",
"enableMicrosoftCodeAnalysis": true,
"enableClangTidyCodeAnalysis": true
}
]
}
CMake 預設值
相同的索引鍵可以透過 vendor
物件在 CMake 預設值中使用。
CMake 預設實作範例如下所示:
"configurePreset": [
{ "name": "base",
....
"vendor": {
"microsoft.com/VisualStudioSettings/CMake/1.0": {
"clangTidyChecks": "llvm-include-order, -modernize-use-override",
"enableMicrosoftCodeAnalysis": true,
"enableClangTidyCodeAnalysis": true
}
}
}
]
警告顯示
Clang-Tidy 執行會導致 [錯誤清單] 中顯示警告,並在程式碼的相關區段下方顯示為編輯器內波浪線。 若要排序及組織 Clang-Tidy 警告,請使用 [錯誤清單] 視窗中的 [類別] 資料行。 您可以切換 [工具]>[選項] 底下的 [停用 Code Analysis 波浪線] 設定,以設定編輯器內警告。
Clang-Tidy 設定
根據預設,Clang-Tidy 不會在啟用時設定任何檢查。 若要查看命令列版本中的檢查清單,請在開發人員命令提示字元中執行 clang-tidy -list-checks
。 您可以設定 Clang-Tidy 在 Visual Studio 內執行的檢查。 在專案 [屬性頁面] 對話框中,開啟 [設定屬性]>[Code Analysis]>[Clang-Tidy] 頁面。 輸入檢查以在 Clang-Tidy 檢查 屬性中執行。 良好的預設集是 clang-analyzer-*
。 這個屬性值會提供給工具的 --checks
引數。 任何進一步的設定都可以包含在自訂 .clang-tidy
檔案中。 如需詳細資訊,請參閱 LLVM.org 的 Clang-Tidy 文件。
Clang-Tidy 工具目錄
如果您想在 clang-tidy 可執行檔建置自訂規則,並在 Microsoft Visual Studio 中執行,可以將路徑變更為 Visual Studio 執行的可執行檔。 在專案 [屬性頁面] 對話框中,開啟 [設定屬性]>[Code Analysis]>[Clang-Tidy] 頁面。 手動輸入路徑或瀏覽,然後選取 Clang-Tidy 工具目錄屬性下方的路徑。 儲存變更之後,就會使用新的可執行檔,並重新編譯應用程式。