EN JP CN

C/C++ build specification (ビルドスペック) の作成

C/C++ build specification (ビルドスペック) の作成

C/C++ build specification (ビルドスペック) の作成

C/C++ build specification (ビルドスペック) の作成

C# | Java への切り替え

Klocwork は、ビルドと統合し、コードストリーム全体の一元表示に必要な情報のすべてをキャプチャします。Insight はこの情報を構造化されたビルドログである build specification (ビルドスペック)というテキストファイルに保存します。build specification (ビルドスペック) は Klocwork 解析の基盤です。

build specification (ビルドスペック) がビルドの正確かつ最新の情報を表していることは重要です。build specification (ビルドスペック) が不正確な場合、Klocwork 解析も不正確になります。

build specification (ビルドスペック) は統合ビルドおよびローカルビルドの両方のレベルで必要です。

  • 統合ビルドの場合、build specification (ビルドスペック) の作成はインストール後に必要な最初のタスクです。
  • 一部のデスクトップ環境ではビルド統合は自動的に発生しますが、その他の環境では build specification (ビルドスペック) を手動で作成する必要があります。build specification (ビルドスペック) を手動で作成する必要があるかどうかが不明な場合は、Klocwork Desktop Analysis を使用したチェックイン前の指摘の修正でコーディング環境を選択してください。

フィールドは、kwinject を使用して、ビルド設定をキャプチャする方法を示します。kwinject は、コンパイラが数台のマシンで実行される分散ビルドを実行している場合を除く、すべての C/C++ プロジェクトでのビルド設定のキャプチャに適しています。

前提条件

build specification (ビルドスペック) を作成するには、その前にサーバーパッケージをインストールする必要があります。インストールKlocworkを参照してください。

ビルド設定をキャプチャする

トラブルシューティング:使用しているコンパイラがそのまま使用できるかどうか不明な場合は、kwinject が使用するコンパイラを認識することを確認するへ移動します。

使用しているビルド環境で、通常のビルドコマンドを発行しますが、次の例のようにそのコマンドの前に kwinject コマンドと必要となるあらゆる kwinject オプションを追加します。kwinject オプションの完全リストについては、kwinject を参照してください。

kwinject [kwinject_options] <build_command> [args]

たとえば、使用しているビルドコマンドが "make" の場合、以下を実行します。

kwinject make

ビルドが完了すると、build specification(ビルドスペック)(デフォルトでは kwinject.out と呼ばれる)が作成されます。

この例では zlib を使用します。zlib 固有の情報を自分の情報に置き換えて使用してください。

  1. たとえば、次のように、作業ディレクトリを make の情報がある最上位ソースディレクトリに変更します。
     cd /usr/local/zlib-1.2.3/ 
    
    注: 一般的なオープンソースプロジェクトでは、初期設定が必要な場合もあります。通常の場合、この設定には make clean および configure と呼ばれるスクリプトを使用します。
  2. フィールドは、--output オプションを使用して、出力テキストファイルの名前と場所を指定します。この例では、次のようになります。
     kwinject —-output /home/klocwork/zlib.out make 
    
    この例では、出力ファイルの名前が zlib.out となるように指定されています。--output オプションを使用しない場合、kwinject では、build specification(ビルドスペック)ファイルに kwinject.out という名前が自動的に付けられ、現在の作業ディレクトリに保存されます。
    ビルドが完了すると、build specification (ビルドスペック) が指定された場所に保存されます。

トラブルシューティング:"コンパイラを構成できません" というエラーメッセージが表示される場合は、kwinject エラー - コンパイラを構成できませんを参照してください。

Visual Studio プロジェクト

kwinject を使用すると、Visual Studio プロジェクトを (devenv、msdev、vcbuild、または msbuild を使用して) コマンドラインからビルドする場合に build specification (ビルドスペック) を作成できます。

注: Visual Studio コマンドプロンプトから kwinject を実行することをお勧めします。 Visual Studio ビルド環境設定をより正確にキャプチャするためです。

例:

kwinject --output test.out devenv mysolution.sln /Rebuild
kwinject --output test2.out msbuild mysolution.sln /t:Rebuild /p:Configuration=Debug
ヒント: devenv はデフォルト構成を使用するため、構成を指定する必要はありません。

VS2010 または VS2012 を使用している場合:

適切な build specification (ビルドスペック) を作成するには、次に従う必要があります。

  • 孤立した MSBuild.exe プロセスを終了してから devenv を実行する
  • MSBUILDDISABLENODEREUSE 環境変数を 1 に設定する
  • MSbuild を使用してビルドする場合は、/nodereuse:false オプションを使用する

kwinject が使用するコンパイラを認識することを確認する

kwinject が使用するコンパイラ名を認識するには、そのコンパイラに関連付けられているコンパイラタイプを特定する必要がある場合があります (たとえば、gcc は GNU の一種であるなど)。

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

特定のコンパイラに対する注意事項

カスタムバインディングをビルドマシンおよびデベロッパーデスクトップに自動的に展開するには、次のようにカスタム kwfilter.conf ファイルを展開する必要があります。
  1. <install>/config ディレクトリの外側に空の kwfilter.conf を作成し、必要なコンパイラを追加します。たとえば、下のサンプルからの行を追加するか、デフォルトの <install>/config/kwfilter.conf ファイルのコメント行をコピーして新しいファイル内に配置し、コメントタグを削除します。
  2. 新しいファイルを <projects_root>/compiler_config ディレクトリにコピーします。このフォルダがまだ存在しない場合は、作成します。
  3. 変更を同期するには、ビルドマシンで kwdeploy sync を実行します。接続されたデベロッパーデスクトップは、次回のローカル解析後に更新されます。
この手順の詳細については、kwfilter.conf の展開を参照してください。

いくつかのサンプルコンパイラを示します:

Green Hills GHS: 次の行を追加します:

filter     ghs     gcc, gcx, ccarm, cxarm, ccmips, cxmips
#filter ghscom  ecomarm
また、GNU 行も追加する必要があります。
#filter    gnu     gcc, g++, cc, c++

Intel XL C/C++: 次の行を追加します:

filter     xlc     cc
また、GNU 行も追加する必要があります。
#filter    gnu     gcc, g++, cc, c++

GNU: ld が直接呼び出される場合 (gcc によって呼び出されるのではない場合) は、次の行を追加します。

filter     gnu_ld  ld

Metaware High C/C++: ldarc が直接呼び出される場合 (hcarc によって呼び出されるのではない場合) は、次の行を追加します。

filter     ldarc   ldarc, ldac

CodeWarrior Freescale S12: CodeWarrior S12 linker および libmaker を使用する場合は、次の行を追加します。

filter link_hc12 linker
filter lib_hc12 libmaker

Wind River Diab: "カバレッジ"ツールを使用する場合は、次の行を追加します。

filter coverage coverage

VSI-Cafe: VSI-Cafe の場合は、次の行を追加します。

filter cafe_compile cl
filter cafe_link link

正確性を確認するための build specification (ビルドスペック) のレビュー

build specification(ビルドスペック)が作成されたら、compilelinkconfig 行があることを確認します。

the build specification (ビルドスペック) を注意深くレビューして、コンパイラオプションが適切に処理されたことを確認します。kwinject が正確にビルド設定をキャプチャしたかどうかを確認するための詳細については、以下を参照してください。

作成された build specification (ビルドスペック) に version 行のみしか含まれていない場合、または config 行がない場合は、不完全な kwinject build specification (ビルドスペック) のトラブルシューティングを参照してください。

build specification (ビルドスペック) の更新時期

次の場合、build specification (ビルドスペック) を更新するか、新規作成する必要があります。

  • ソースファイルが追加または削除された
  • ビルド設定が変更された

以上の状況で既存の build specification (ビルドスペック) を再利用したり、手動で変更したりすると、解析結果が不正確になります。

注: クリーンビルド (ソースファイルの完全再ビルド) を行った場合は、新しい build specification (ビルドスペック) を作成し、完全なビルド解析を実行することをお勧めします。完全ビルド解析の実行 を参照してください。

build specification (ビルドスペック) の増分更新

build specification (ビルドスペック) を kwinject で作成した後は、デスクトップまたは統合プロジェクトの増分解析を実行する場合、新しい build specification (ビルドスペック) を最初から作成しなくても、作成したものを更新できます。

kwinject の --update オプションを使用すると、既存の build specification (ビルドスペック) を更新できます。詳細については、増分解析の実行を参照してください。