EN JP CN

不完全な kwinject build specification (ビルドスペック) のトラブルシューティング

不完全な kwinject build specification (ビルドスペック) のトラブルシューティング

不完全な kwinject build specification (ビルドスペック) のトラブルシューティング

不完全な kwinject build specification (ビルドスペック) のトラブルシューティング

build specification (ビルドスペック) にバージョン行のみが含まれる

kwinject によりバージョン行のみを含む build specification (ビルドスペック) ファイルが生成される場合、kwinject でコンパイラを認識することができませんでした。

ビルド統合でサポートされる C/C++ コンパイラに移動して、使用するコンパイラタイプがサポートされているかどうかを確認してください。

コマンドラインでビルドした Visual Studio 2010 プロジェクトで、build specification (ビルドスペック) にバージョン行のみが含まれている場合、不要な msbuild.exe プロセスまたは mspdbsrv.exe プロセスがないかをチェックしてください。見つかった場合は、kwinject の実行前に終了します。

build specification (ビルドスペック) の config 行がないか間違っている

build specification (ビルドスペック) に正しいコンパイル行が含まれていても、config 行がないか間違っていることに気付いた場合は、kwinject にビルド設定が含まれていても、正確なビルド解析に必要なシステムインクルードまたはマクロ定義の完全なリストがありません。この場合は、適切なコンパイラのサポートを提供できるよう、--debug オプションを指定して kwinject を再実行し、そのデバッグ出力を カスタマーサポートに送信してください。

認識されるコンパイラタイプへのコンパイラ名のバインド

使用するコンパイラがサポートされているコンパイラタイプであることがわかっていても、標準的な名前でない場合、使用するコンパイラの名前を kwinject が認識するコンパイラタイプにバインドする必要があります。

build trace (ビルドトレース) の生成

build trace (ビルドトレース) を生成して正確なコンパイラ名を取得します。build trace (ビルドトレース) を使用した build specification (ビルドスペック) の問題のトラブルシューティングを参照してください。

テストのためのコンパイラ名の一時的なバインド

コンパイラ名を一時的にバインドして、指摘が解決されるかどうかを確認します。

  1. --progオプションを設定して kwinject を実行します。
    kwinject --prog <compiler_name>=<compiler_type> --trace-in <trace_file> --output <output_file>
    
    フィールド
    • <compiler_name> は指定したコンパイラタイプに適用できる 1 つまたは複数の実行可能ファイルであり、<klocwork_install>/config/kwfilter.confで指定されています。
    • <compiler_type> は kwinject によって認識されるコンパイラ名です。
    たとえば、gcc が gcc-4.1 へのシンボリックリンクの場合、build trace (ビルドトレース) での kwinject の実行時に --prog オプションを使用して gcc-4.1 が実際には gcc であることを一時的に指定できます。
    kwinject --prog gcc-4.1=gnu --trace-in <trace_file> --output <output_file>
    
    注: kwshell の代わりに、--prog オプションを指定した kwshell を使用することもできます。
  2. 次に、新しい build specification (ビルドスペック) ファイル (.out) を見直し、config 行が含まれることを確認します。上の例を使用すると、build specification (ビルドスペック) の config 行は次のようになります。
    config;/usr/bin/gcc;-e;gnu;-DGNUC=3;-J/usr/include;
    
  3. build specification (ビルドスペック) に config 行が含まれ、完全に見える場合、次のセクションに示したようにコンパイラ名を永久にバインドできます。
ヒント: 場合によっては、1 つのビルド環境に複数のコンパイラまたはリンカーを含めることができます (gcc-x86、gcc-mips、および ar-mips など)。この場合には、--prog オプションの複数インスタンスを使用します。たとえば、次のようになります。
kwinject --output myproject.out --prog gcc-x86=gnu --prog gcc-mips=gnu --prog ar-mips=ar make 

コンパイラマッピングファイルでのコンパイラ名の永久バインド

build specification (ビルドスペック) を生成するたびに --prog オプションを指定してコンパイラ名を kwinject に渡す代わりに、<klocwork_install>/config/kwfilter.conf にあるコンパイラマッピングファイルを編集することができます。

同じ例を使用すると、gcc-4.1 を kwfilter.conf に追加できます。kwfilter.conf で GNU コンパイラタイプを制御する行は、デフォルトで次のようになります。

# Default GNU C/C++ compiler

filter gnu gcc, g++, cc, c++

これを次のように編集できます。

# Default GNU C/C++ compiler

filter gnu gcc, g++, cc, c++, gcc-4.1, g++-4.1

詳細については、コンパイラのマッピングファイル形式 (kwfilter.conf) を参照してください。

ヒント: カスタム kwfilter.conf ファイルを、Klocwork Desktop または kwcheck を使用するデベロッパーが使用できるようにします。サポートされていない IDE またはテキストエディターを使用するデベロッパーは、コンパイラの設定も必要になる場合があります。カスタム kwfilter.conf ファイルをそれぞれの <user_install/config>ディレクトリにコピーすることで、手間を省くことができます。