EN JP CN

Kwbuildproject

Kwbuildproject

kwbuildproject コマンドで、統合ビルド解析を実行し、次の段階を実行します。

  • コンパイル
  • 指摘検出
  • リンク
  • レポート生成

kwbuildproject は Klocwork サーバーパッケージとともにインストールされます。

関連項目:C/C++ | Java | C#

注意

  • kwbuildproject はプリコンパイル済みヘッダー情報を自動的に生成し、使用します。
  • C/C++ プロジェクトの場合、kwbuildproject を使用すると分散解析を実行できます。
  • kwbuildproject は、プロセスに成功すると終了コード 0 を返します。何か問題があり、テーブルが生成されない場合は、終了コード 1 が返されます。テーブルが生成されても、ビルド時に重大なエラー(インクルードファイルの欠落やコンパイラエラーなど)がある場合には、終了コード 2 が返されます。C# 終了コードの詳細については、以下を参照してください。
  • テーブルディレクトリに加えて、kwbuildproject は解析時に、一時ディレクトリで追加領域を使用します。一次ディレクトリの場所は、システムの環境変数により指定されます。

使用方法

kwbuildproject --tables-directory <dir> 
--url http://<klocwork_server_host>:<klocwork_server_port>/<server_project>
[<other_options>] <build_specification_1> [<build_specification_2>...] 

フィールド

  • <dir> は出力テーブルディレクトリです。--tables-directory オプションは必須です。
  • <klocwork_server_host>:<klocwork_server_port> と<server_project> は、解析を実行するプロジェクトと、プロジェクトが配置されている Klocwork サーバーを識別します。
  • <other_options> は、次の表に示した任意のオプションです。
  • <build_specification_1> は C/C++ | Java | C# の build specification (ビルドスペック) です。このコマンドでは任意数の build specification (ビルドスペック) を指定できます。

次のようにして、kwbuildproject の引数ファイルも指定できます。

kwbuildproject @<arguments_file>

引数ファイルを作成して、コマンドライン引数を指定することができます。各引数は、独立した行に指定する必要があります。(引数ファイルにマルチバイト文字が含まれる場合、ファイルは UTF-8 でエンコードされている必要があります。)

kwbuildproject --tables-directory C:\Klocwork\My_tables --url http://myserver:8080/myproject C:\Klocwork\kwinject.out

オプション

名前短い名前説明
--add-compiler-options "<option_1> [<option_2>...]"-a

C/C++ コンパイラに追加オプションを渡します。複数のコンパイラオプションを渡すには、スペースでそれらを区切り、文字列全体を二重引用符で囲みます。許容される値は、kwbuildproject のコンパイラオプションです。

たとえば、次のようになります。

--add-compiler-options "-I C:\Toolbus\lib_includes --print-errors"

--add-linker-options "<option_1> [<option_2>...]"-Lリンカーに追加オプションを渡します。複数のリンカーオプションを渡すには、スペースでそれらを区切り、文字列全体を二重引用符で囲みます。許容される値は、kwbuildproject のリンカーオプションです。
--buildspec-variable <variable_name>= <variable_value>-Vbuild specification template (ビルドスペックテンプレート) の使用を許可します。このオプションが使用され、build specification template (ビルドスペックテンプレート) (*.tpl) が標準の build specification (ビルドスペック) の代わりに kwbuildproject への入力として指定された場合、kwbuildproject は、build specification template build specification template (ビルドスペックテンプレート)で見つかった指定された変数をすべて、指定された変数値に置き換えます。デベロッパーへの build specification template (ビルドスペックテンプレート) の提供を参照してください。
--color-cコンソールへ色付きで出力します。
--dist-host <host_name> Distributed Analysis Server のホスト名を指定します (デフォルト:localhost)。
--dist-port <int> Distributed Analysis Server のポート番号を設定します (デフォルト:3440) です。
--encoding-C

プロジェクトで使用するソースファイルのエンコードを指定します。ソースファイルにマルチバイト文字 (日本語など) が含まれる場合は、このオプションを--encoding UTF-8 に指定します。許容される値のリストを検索するには、kwconv--list オプションを使用します。

注意

  • エンコードをビルド時のみに設定しプロジェクトレベルで設定しない場合、マルチバイト文字を含むソースファイルは Klocwork Static Code Analysis のソースビューアーで正しく表示されません。エンコードを kwbuildproject で設定すると、サーバーが実行していない場合に役にたちます。サーバーを実行している場合は、source_encoding プロパティを使用して、kwadmin create-project--encoding オプションまたは kwadmin set-project-property で、プロジェクトレベルでソースエンコーディングを設定します。
  • エンコードがビルド時に設定されない場合、プロジェクトレベルで設定されたエンコードが使用されます。
  • エンコードがプロジェクトレベルで設定されないか、または設定されても kwbuildproject の --url オプションでプロジェクトが指定されない場合は、デフォルトのシステムエンコードが使用されます。
  • エンコードがプロジェクトレベルと kwbuildproject の両方で設定される場合は、kwbuildproject オプションが優先されます。
--errors-config-e問題構成ファイルを指定します。
--force-f--tables-directory で指定されたテーブルディレクトリに、前回の解析実行によるデータファイルが含まれている場合でも解析を実行します (これらのファイルは削除されます)。
--help このヘルプを表示します。
--incremental-I

前回の解析の後に変更されたファイル、および変更されたファイルに対する依存関係のあるファイルのみを解析します。完全なプロジェクトの前回の解析が完了していることが前提です。解析実行後に出力テーブルディレクトリを維持する必要があります。

--incremental を使用すると、中断されたビルドを再開することもできることに注意してください。このオプションは --resume オプションのように機能しますが、解析が中断した後にソースファイルが変更された場合でも処理します

--java-kb <file>-KJava knowledge base (ナレッジベース) ファイルを使用します。
--jobs-num <int> | auto-j並列コンパイルと実行する指摘検出プロセスの最大数を指定します。次のいずれかを指定します。
  • 1 ~ 64 の整数
  • 自動モードに設定するには auto。このモードでは、コンパイルジョブの数は使用できるプロセッサーコアの数 + 1 に等しくなります。分散解析では自動モードはサポートされていません。-j auto が kwbuildproject のデフォルト設定であることに注意してください。
1 台のマシンで並列 C/C++ または Java 解析を実行する場合は、ビルドマシンで使用できるプロセッサーコア数 + 1 にこの値を設定することをお勧めします。たとえば、2 コアマシンなら、この値を 3 に設定します。この数を超えると、パフォーマンスは低下する可能性があります。この数よりも大きく設定すると、パフォーマンスが低下します。C/C++ 解析の負荷を複数のマシンに分散している場合は、実行中のエージェントの数 + 1 にこの値を設定することをお勧めします (たとえば、3 つのエージェントを実行中なら --jobs-num 4 を指定します)。詳細については、分散 Klocwork C/C++ 解析の実行を参照してください。

注意:スワップが起こらないように、十分なメモリがあることを確認してください。必要に応じてジョブ数を減らしてください。

--license-host <host_name>-H

ライセンスサーバーのホストを設定します (デフォルト:localhost)。

ヒント:この値は、UNIX の $HOME/.flexlmrc ファイルで、または Windows レジストリの KLOCWORK_LICENSE_FILE 環境変数で設定することもできます。このレジストリエントリは HKEY_LOCAL_MACHINE > SOFTWARE > FLEXlm ライセンスマネージャー > KLOCWORK_LICENSE_FILE にあります。この設定により、kwbuildproject を使用する毎にこれらのオプションを使用する必要がなくなります。

--license-port <port_number>-Pライセンスサーバーのポートを設定します (デフォルト:27000)。--license-host オプションのヒントを参照してください。
--log-file <file>-lログ出力をファイル (デフォルトは <tables-directory>/build.log) に送信します。
--no-color 色付きの出力を使用しません。
--no-lef-nKlocwork 指摘検出段階を実行しません
--project-SKlocwork サーバーのプロジェクト名を指定します。このパラメーターを使用して、構成ファイル (pconf、metrics_default.mconf など) をダウンロードするプロジェクトを指定し、その構成ファイルをビルド時に適用できます。
--quiet-qコンソールのメッセージを非表示にします。コマンドライン パースエラーは抑制されません。
--remote Distributed Analysis Server を介してリモートで、エンジンを実行します。
--replace-path <original_path>=<new_path> ソースパスの接頭辞を置換します。同じコマンドラインでこのオプションの複数のインスタンスを使用できます。例:--replace-path /usr/include=includeソースファイルへのパスの置換を参照してください。
--resume-r

中断か失敗かに関わらず、前回のビルドを再開します。元の kwbuildproject コマンドラインに --resume オプションを追加してください。

Java プロジェクトでコンパイル中に解析が中断された場合、解析を再開するとすべての Java ソースファイルが再コンパイルされます。

再開の機能は最後に行われたプロジェクト解析と、それが使用できる設定にのみ適用されます。たとえば、元の解析設定にレポートデータの生成が含まれていなかった場合、レポートデータの生成は再開プロセスの一部として使用できません。この解析でその他のレポートのデータを生成するには、別のステップで行う必要があります。

失敗した解析の時刻と失敗の原因の情報を、ビルドログ (テーブルディレクトリにあります) でチェックすることができます。解析が再開されると、ビルドログが更新され、操作を再開した時刻が反映されます。

--strict 追加のビルド警告を表示します。このオプションは DO-178B 準拠にのみ関連します。--strict が指定されている場合、kwbuildproject は関数の解析をスキップする毎に build.log ファイルに行を追加します。kwbuildproject が 1 つまたは複数の関数をスキップした場合、コマンドはリターンコード 2 を返して終了します。詳細については、ビルドログの C/C++ パス解析エラーを参照してください。
--tables-directory <dir>-o

プロジェクトのテーブルを格納する場所を指定します。必須オプションです。前回のビルドからのテーブルディレクトリは、次のいずれかを指定しない限り、再利用できません。

  • --resume
  • --force
  • --incremental

このディレクトリの読み取り権限と書き込み権限を所有している必要があります。Linux に関する注意:MySQL の制限により、テーブルディレクトリのパス名にバックスラッシュを含めることはできません。

--url http://<klocwork_server_host>:<klocwork_server_port>/<server_project> プロジェクトの URL。この引数は、プロジェクトと Klocwork サーバーが配置された場所を識別します。Klocwork サーバーのセキュア接続が構成されている場合は、https:// を使用します。このオプションは、特定のプロジェクトによってサーバーに配置されたチェッカー、メトリック、ナレッジベース設定などの構成を同期させます。
--use-fbkb <file>-KC/C++ プロジェクトに、指定された knowledge base (ナレッジベース) ファイルを使用します。コマンドライン 1 行にこのオプションを複数回使用できます。
--use-prev-fbkb <file>-Q

knowledge base (ナレッジベース) の更新時の優先度の低いファイルとして、指定した knowledge base (ナレッジベース) ファイルを使用します。このファイルからのレコードは、これよりも最新の類似レコードが存在しない場合にのみ、新しいファイルに追加されます。ソースコードの前のバージョン用の、自動生成された knowledge base (ナレッジベース) ファイルがある場合はこのオプションを使用します。これにより、指摘検出プロセスが加速されます。しかし、結果が正確とは限りません。

元のソースでは、フィールド BR タグが使用されています。コマンドライン 1 行に、このオプションの複数インスタンスを指定できます。

--verbose-vプログラム実行についての詳細情報を表示します。これは、エラーのトラブルシューティングに役立ちます
--version バージョン情報を表示します。

C# 解析の終了コード

kwbuildproject コマンドを実行すると、システムは終了コードを生成します。以下のテーブルでは、それぞれの終了コードを発生させる条件を一覧表示します。

条件終了コード結果
成功0成功。
ライセンスのチェックに失敗1ツールの起動に失敗しました。
クラッシュ1ツールがクラッシュしました。
コマンドライン KAST の失敗 1KAST パターンのコンパイルに失敗しました。
問題のダンプに失敗1テーブルディレクトリの作成は、完全ではありません。
KB ダンプに失敗1テーブルディレクトリの作成は、完全ではありません。
メトリックスのダンプに失敗1テーブルディレクトリの作成は、完全ではありません。
RDT のダンプに失敗1テーブルディレクトリの作成は、完全ではありません。
DLL のロードに失敗2外部参照アセンブリはロードされていませんが、解析は実行可能です(精度の低下)。
構成ファイルなし 2構成ファイル(デフォルトの構成ファイルまたは変更された構成ファイル .pconf)はロードされていませんが、解析は実行可能です。
KB なし 2一部の KB ファイルはロードされていませんが、解析は実行可能です(精度の低下)。
パースエラー2一部のソースファイルは、パースされていません(精度の低下)。