認識されるコンパイラタイプへのコンパイラ名のバインド
使用するコンパイラがサポートされているコンパイラタイプであることがわかっていても、標準的な名前でない場合、使用するコンパイラの名前を kwinject が認識するコンパイラタイプにバインドする必要があります。
build trace (ビルドトレース) の生成
build trace (ビルドトレース) を生成して正確なコンパイラ名を取得します。build trace (ビルドトレース) を使用した build specification (ビルドスペック) の問題のトラブルシューティングを参照してください。
テストのためのコンパイラ名の一時的なバインド
コンパイラ名を一時的にバインドして、指摘が解決されるかどうかを確認します。
- --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 を使用することもできます。 - <compiler_name> は指定したコンパイラタイプに適用できる 1 つまたは複数の実行可能ファイルであり、
- 次に、新しい build specification (ビルドスペック) ファイル (
.out
) を見直し、config 行が含まれることを確認します。上の例を使用すると、build specification (ビルドスペック) のconfig
行は次のようになります。config;/usr/bin/gcc;-e;gnu;-DGNUC=3;-J/usr/include;
- build specification (ビルドスペック) に
config
行が含まれ、完全に見える場合、次のセクションに示したようにコンパイラ名を永久にバインドできます。
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>
ディレクトリにコピーすることで、手間を省くことができます。