EN JP CN

C/C++ プロジェクトの build specification (ビルドスペック) ファイルの形式

C/C++ プロジェクトの build specification (ビルドスペック) ファイルの形式

C/C++ プロジェクト用の Klocwork build specification (ビルドスペック) は、kwinject.out というデフォルト名のセミコロンで区切られたテキストファイルです。

最初のフィールドは、行のタイプを識別するタグです。使用されるタグは次のとおりです。

タグ 説明
versionbuild specification (ビルドスペック) 形式のバージョン
compileコンパイラの実行を追跡するために使用
linkリンカー/ライブラリの実行、つまり実行可能ファイル/ライブラリの作成方法を追跡するために使用
configユーザーのコンパイラ設定

バージョン行

バージョン行は、build specification (ビルドスペック) 形式のバージョンを定義するために使用されます。これは build specification (ビルドスペック) の最初の行にする必要があります。build specification (ビルドスペック) に使用できるバージョン行は 1 行のみです。

バージョン行の例:
version;106

バージョンを示すコードには、3 桁の整数を使用します。最初 (左側) の桁はメジャーバージョン (上の例の "1") を示し、最後の 2 桁はマイナーバージョン (上の例の "06") を示します (フルバージョンコードは "1.6")。

バージョン 1.4 以降は、build specification (ビルドスペック) がソースエンコーディングに UTF-8 を使用して生成され、マルチバイト文字 (日本語など) が許可されていることを示します。kwbuildproject により build specification (ビルドスペック) が UTF-8 エンコーディングで処理されることを保証するには、バージョンが version;104 以降である必要があります。

コンパイル行

コンパイル行はコンパイラの実行を追跡するために使用されます。

コンパイル行の例:
compile;/tmp/zlib-1.2.2;/usr/bin/gcc;/tmp/zlib-1.2.2/example.o;example.c;-DUSE_MMAP

フィールドは次のとおりです。

フィールド 説明
"compile" タグコンパイル行のタグ
作業ディレクトリリンカー実行時の作業ディレクトリ (上の例の /tmp/zlib-1.2.2 )
コンパイラユーザーのコンパイラ実行可能ファイルのフルパス (/usr/bin/gccなど)
出力ファイル"ネイティブ" オブジェクトファイルの名前 (/tmp/zlib-1.2.2/example.o など)
ソースファイルソースファイルの名前 (example.c など)
コンパイラフラグセミコロンで区切られた追加コンパイラオプション。通常は、インクルードディレクトリとマクロ定義のリスト (-DUSE_MMAP など)

リンク行

リンク行は、リンカーの実行、つまり実行可能ファイル/ライブラリの作成方法を追跡するために使用されます。

リンク行の例:
link;/tmp/zlib-1.2.2;/tmp/zlib-1.2.2/example;/tmp/zlib-1.2.2/example.o;/tmp/zlib-1.2.2/libz.a

フィールドは次のとおりです。

フィールド 説明
"link" タグリンク行のタグ
作業ディレクトリコンパイラ実行時の作業ディレクトリ (上の例の /tmp/zlib-1.2.2)
出力ファイル実行可能ファイルまたはライブラリの名前 (/tmp/zlib-1.2.2/example など)
オブジェクトファイル実行可能ファイル/ライブラリにリンクされたオブジェクトファイルやライブラリのセミコロン区切りリスト (/tmp/zlib-1.2.2/example.o;/tmp/zlib-1.2.2/libz.a など)

config 行

config 行は、ネイティブコンパイラにより暗黙的に使用されるデファインとインクルードディレクトリのリストを記録するために使用されます。この行はオプションですが、正確な解析を得るためには、システムのデファインとインクルードを指定する必要があります。

config 行の例 (一部省略):
config;/usr/bin/gcc;-e;gnu;-DGNUC=3;...;-J/usr/include;...

フィールドは次のとおりです。

フィールド 説明
"config" タグconfig 行のタグ
コンパイラコンパイラのパス (/usr/bin/gcc など)
フラグKlocwork コンパイラに渡されるコンパイルオプションのセミコロン区切りリスト。リストされたフラグは、同じコンパイラを使用してすべてのコンパイルコマンド行に自動的に追加されます。