Visual Studio での Clang-Tidy の使用
Clang-Tidy のサポートには、2019 バージョン 16.4 以降 Visual Studio が必要です。 このバージョンのドキュメントを表示するには、この記事の Visual Studio の [バージョン] セレクター コントロールを Visual Studio 2019 以降に設定してください。 このページの目次の一番上にあります。
Code Analysis では、Clang または MSVC ツールセットを使用しているかどうかにかかわらず、MSBuild と CMake の両方のプロジェクトに対して Clang-Tidy をネイティブにサポートします。 Clang-Tidy チェックは、バックグラウンド コード分析の一部として実行できます。 これらは、エディター内の警告 (波線) として表示され、エラー一覧に表示されます。
Clang-Tidy のサポートは、Visual Studio 2019 バージョン 16.4 以降で使用できます。 Visual Studio インストーラーで C++ ワークロードを選択すると、自動的に追加されます。
Clang-Tidy は、MSBuild と CMake の両方で使用できる llvm/clang-cl ツールセットを使用する場合の既定の分析ツールです。 MSVC ツールセットを使用して、標準の Code Analysis エクスペリエンスと一緒に実行するか、置き換えるかを設定できます。 clang-cl ツールセットを使用する場合、Microsoft Code Analysis は使用できません。
コンパイルが成功すると Clang-Tidy が実行されます。 Clang-Tidy の結果を取得するには、ソース コード エラーの解決が必要になる場合があります。
MSBuild
両方の Code Analysis の一部として実行するように Clang-Tidy を構成し、Project プロパティ ウィンドウの [コード分析] > [全般] ページでビルドできます。 ツールを構成するオプションは、[Clang-Tidy] サブメニューにあります。
詳細については、「方法: C/C++ プロジェクトのコード分析プロパティを設定する」を参照してください。
CMake
CMake プロジェクトでは、CMakeSettings.json
または CMakePresets.json
内で Clang-Tidy チェックを構成できます。
Clang-Tidy は次のキーを認識します。
enableMicrosoftCodeAnalysis
: Microsoft Code Analysis の有効化enableClangTidyCodeAnalysis
: 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 のドキュメントを参照してください。
"enable" オプションが指定されていない場合、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 警告を並べ替えて整理するには、[エラー一覧] ウィンドウの [カテゴリ] 列を使います。 エディター内の警告を構成するには、[ツール]>[オプション] の下にある [コード分析破線を無効にする] 設定を切り替えます。
Clang-Tidy 構成
既定では、Clang-Tidy は有効にされても、何もチェックは設定されません。 コマンド ライン バージョンのチェック一覧を表示するには、開発者コマンド プロンプトで clang-tidy -list-checks
を実行します。 Visual Studio 内で Clang-Tidy によって実行されるチェックを構成できます。 [プロジェクト プロパティ ページ] ダイアログで、[構成プロパティ] > [Code Analysis] > [Clang-Tidy] ページを開きます。 [Clang-Tidy チェック] プロパティで実行するチェックを入力します。 適切な既定のセットは clang-analyzer-*
です。 このプロパティ値は、ツールの --checks
引数に指定されます。 その他の構成は、カスタム .clang-tidy
ファイルに含めることができます。 詳細については、「LLVM.org の Clang-Tidy ドキュメント」を参照してください。
Clang-Tidy Tool Directory
clang-tidy 実行可能ファイルにカスタム ルールを組み込んで Microsoft Visual Studio で実行する場合は、Visual Studio で実行される実行可能ファイルへのパスを変更できます。 [プロジェクト プロパティ ページ] ダイアログで、[構成プロパティ] > [Code Analysis] > [Clang-Tidy] ページを開きます。 パスを手動で入力するか、パスを [参照] し、Clang-Tidy Tool Directory プロパティで選択します。 変更が保存され、アプリが再コンパイルされると、新しい実行可能ファイルが使用されます。
関連項目
Clang/LLVM の MSBuild プロジェクトのサポート
Clang/LLVM の CMake プロジェクトのサポート