Unreal Build Tool (UBT) は、いくつかの静的コード アナライザーの実行をサポートしています。静的コード アナライザー は、さまざまなアルゴリズムと技法を使用してソース コードを検査し、コードを実行せずにバグを見つけ出します。これにより、解析速度の向上、メモリ リークや論理エラーの早期検出、技術的な負担の軽減が実現します。
UBT で静的コード アナライザーを使用する
Unreal Engine のルート ディレクトリから UBT を使用して静的コード アナライザーを実行するための一般的なコマンドライン構文は次のとおりです。
Engine\Build\BatchFiles\RunUBT.bat TARGET PLATFORM Development -StaticAnalyzer=ANALYZER
上記のコマンドにある TARGET
、PLATFORM
、および ANALYZER
は必須の引数です。それらを目的の値に置き換える必要があります。
TARGET
:UBT によってサポートされるビルド ターゲット。詳細は「ターゲット」のドキュメントを参照してください。PLATFORM
:Unreal Engine によってサポートされるプラットフォーム。Unreal Engine のプラットフォーム サポートについての詳細は、「一般的なプラットフォームのサポート」ページを参照してください。ANALYZER
:指定されているプラットフォーム上に提供されたターゲットを解析するために UBT で使用される静的コード アナライザー。使用可能なオプションを確認するには、次の「サポートされているアナライザー」セクションを参照してください。
サポートされているアナライザー
アナライザー | 説明 |
---|---|
Default | 選択したコンパイラのデフォルトの静的アナライザー (ある場合)。 |
VisualCpp | ビルトインの Visual C++ の静的アナライザー。Microsoft Visual C++ (MSVC) ベースのプラットフォームでのみサポートされます。 |
PVSStudio | PVS-Studio の静的アナライザー。MSVC ベースのプラットフォームでのみサポートされます。 PVS-Studio では、インストールされた |
Clang | Clang の静的アナライザー。コンパイラが強制的に MSVC ベースのプラットフォームの Clang になります。 UE 5.3 では、 Clang 静的解析には 警告数を減らす 1 つの方法は、コマンドライン引数 |
例
Unreal Engine のルート ディレクトリから次のコマンドを実行し、Windows 64 ビットのプラットフォームで Unreal Editor をターゲットとしてデフォルトの静的コード アナライザーを使用します。
Engine\Build\BatchFiles\RunUBT.bat UnrealEditor Win64 Development -StaticAnalyzer=Default
Unreal Engine のルート ディレクトリから次のコマンドを実行し、Windows 64 ビットのプラットフォームで Lyra Starter Game をターゲットとして Visual C++ の静的コード アナライザーを使用します。
Engine\Build\BatchFiles\RunUBT.bat LyraGame Win64 Development -StaticAnalyzer=VisualCpp
Clang Analyzer のコマンドライン オプション
オプション | 説明 |
---|---|
-StaticAnalyzerOutputType=html |
解析の警告を説明するナビゲーション付きの Web ページを書き出します。これらの HTML ファイルは、選択したプラットフォームおよびターゲットの Engine/Intermediate/Build ディレクトリ内にある適切なフォルダに書き込まれます。 |
-StaticAnalyzerMode=shallow |
浅い解析を有効にします。これにより解析が素早く完了しますが、通常の解析に比べて有益ではありません。一般的な目的でこのモードを使用することは、お勧めしません。 |
-StaticAnalyzerChecker=CHECKER |
デフォルトのリストではなく、有効にする静的アナライザー チェッカーのリストを提供します。 |
-StaticAnalyzerDisableChecker=CHECKER |
静的アナライザーのデフォルト チェッカーを無効にします。このオプションでは、デフォルトの無効なチェッカーである deadcode.DeadStores および security.FloatLoopCounter をオーバーライドします。このオプションは、-StaticAnalyzerChecker が設定されている場合は使用されません。 |
-StaticAnalyzerAdditionalChecker=CHECKER |
デフォルトではない追加の静的アナライザー チェッカーを有効にします。このオプションは、-StaticAnalyzerChecker が設定されている場合は使用されません。 |
すべての Clang アナライザー チェッカーのリストは、Clang ドキュメントの「Available Checkers」を参照してください。