EN JP CN

QNX Momentics のビルド設定のキャプチャ

QNX Momentics のビルド設定のキャプチャ

QNX Momentics のビルド設定のキャプチャ

QNX Momentics のビルド設定のキャプチャ

QNX Momentics で C/C++ プロジェクトを解析する前に、ビルド設定のキャプチャを改善するために IDE ビルドプロセスをカスタマイズする必要があります。

Klocwork では、解析の実行に build specification (ビルドスペック) が必要です。build specification (ビルドスペック) には、プロジェクトのソースファイルとそのコンパイラオプション (インクルードと定義) のリストが含まれます。Klocworkは、IDE ビルドプロセスを監視するか外部 (コマンドライン) ビルドプロセスを監視して、build specification (ビルドスペック) を作成します。プロジェクトにファイルが追加されるか削除されると build specification (ビルドスペック) が自動的に更新されるので、前者をお勧めします。

お使いになる前に

適切なバージョンの Java を使用していることを確認してください

QNX Momentics 4.6 および 4.7 はデフォルトで Java 5 を使用します。Klocwork Eclipse Plug-in には、Java 7 が必要です。qde.ini ファイル (たとえば \QNX650\host\win32\x86\usr\qde\eclipse\qde.ini) で次の 2 行をファイルの最初に追加し、Momentics 4.6 および 4.7 用の JVM を指定します。

-vm
<jvm_install_path>\bin

サポートされるビルダーを使用していることの確認

Momentics は 3 種類のビルダーを使用して C/C++ プロジェクトを作成します(Eclipse C/C++ プロジェクトは #2 および #3 を使用します)。

  1. QNX Recursive Make Builder
    • Momentics 4.7 を使用する QNX C/C++ プロジェクトでは必須
  2. Gnu Make Builder
    • C/C++ プロジェクトについて選択可能
  3. C/C++ プロジェクト用の Internal CDT Builder
    • C/C++ プロジェクトについて選択可能

プロジェクトが "Internal CDT Builder" でビルドされている場合、ビルドタイプを変更する必要があります。正確な build specification (ビルドスペック) を自動的に作成するために、Klocwork では、"QNX Recursive Make Builder" または "Gnu Make Builder" を指定することが必要です。C/C++ Build/Tool Chain Editor のプロパティページで、プロジェクトのビルダーを選択します。

次のセクションに進むか、Gnu Make Builder にスキップします。

QNX Recursive Make Builder

QNX Recursive の make プロセスの監視には、Momentics による MAKE 環境変数の設定方法のために、コマンド/シェルファイルがマシンに作成されていることが必要です。コマンド/シェルファイルは、MAKE を正しい値に設定します。

コマンド/シェルファイル kwinjectqnx の作成

コマンド/シェルファイルを作成できるようにするために、コマンドラインデスクトップ解析ツールがインストールされていることを確認する必要があります。詳細については、次を参照してください。 デスクトップ解析プラグインのダウンロードと展開

Windows:kwinjectqnx.bat ファイルを作成し、<command_line_tools>\bin ディレクトリ (たとえばC:\Klocwork\Klocwork 2017.2 Command Line\bin) に配置します。kwinjectqnx.bat ファイルには、次の 2 行が含まれます。

set MAKE=%1
kwinject -u -o buildspec.out %*

Linux:kwinjectqnx.sh ファイルを作成し、<command_line_tools>/bin ディレクトリ (たとえば /opt/tools/klocwork/commandlinetools/bin) に配置します。kwinjectqnx.sh ファイルには次の 3 行が含まれます。

MAKE=$1
export MAKE
kwinject -u -o buildspec.out $*

各プロジェクトのビルドコマンドの変更

Momentics プロジェクトエクスプローラーで、各 C/C++ プロジェクトを順に選択し、プロジェクトプロパティの [C/C++ ビルド] タブを表示します。

Momentics プロジェクトエクスプローラーで、各 QNX C/C++ プロジェクトを順に選択し、プロジェクトプロパティの [Make Builder] タブを表示します。

[Use Default Build command] の選択を解除し、既存のビルドコマンドコンテンツの前に適切なコマンド/シェルを追加します。たとえば、次のようになります。

Windows

${system_path:kwinjectqnx.bat} ${QNX_HOST}/usr/bin/make ...

Linux

${system_path:kwinjectqnx.sh} ${QNX_HOST}/usr/bin/make ...

各プロジェクトのビルド

[クリーン] に続けて [ビルド] を実行して、各プロジェクトを順番にビルドしていきます。[Momentics Console] ウィンドウでビルドエラーがないことを確認してください。

各プロジェクトの Klocwork ビルド設定の変更

各プロジェクトの Klocwork ビルド設定を変更して、以前の手順で生成した build specification (ビルドスペック) (buildspec.out) を使用できるようにするには:

  1. [プロジェクトプロパティ] の [Klocwork ビルド設定] ページで、[build specification (ビルドスペック) ファイルの使用] を選択します。
  2. build specification (ビルドスペック) ファイル (buildspec.out) の場所を入力します。 このファイルは、各プロジェクトで一意である必要があります。以前の手順により、このファイルはプロジェクトの Momentics ソースツリーのルート (つまり、プロジェクトの makefile の配置先) に作成されることになりました。[参照] をクリックすると、このフォルダーが自動的に表示されます。プロジェクトがクリーンされビルドされるまで、build specification (ビルドスペック) ファイルは存在しないことに注意してください。

フィールドKlocwork サーバー上のプロジェクトへの接続に戻ります。

Gnu Make Builder

Gnu Make Builder の変更は、make プロセスが再帰的ではないため、簡単です。

各プロジェクトのビルドコマンドの変更

Momentics プロジェクトエクスプローラーで、各 C/C++ プロジェクトを順に選択し、[C/C++ ビルド] プロジェクトプロパティページを表示します。

[Use Default Build command] の選択を解除し、kwinject コマンドおよびその引数を既存のビルドコマンドコンテンツの前に追加します。たとえば、次のようになります。

${system_path:kwinject} -u -o ${ProjDirPath}/buildspec.out make ...

各プロジェクトのビルド

[クリーン] に続けて [ビルド] を実行して、各プロジェクトを順番にビルドしていきます。[Momentics Console] ウィンドウでビルドエラーがないことを確認してください。

各プロジェクトの Klocwork ビルド設定の変更

各プロジェクトの Klocwork ビルド設定を変更して、以前の手順で生成した build specification (ビルドスペック) (buildspec.out) を使用できるようにするには:

  1. [プロジェクトプロパティ] の [Klocwork ビルド設定] ページで、[build specification (ビルドスペック) ファイルの使用] を選択します。
  2. build specification (ビルドスペック) ファイル (buildspec.out) の場所を入力します。 このファイルは、各プロジェクトで一意である必要があります。以前の手順により、このファイルはプロジェクトの Momentics ソースツリーのルート (つまり、プロジェクトの makefile の配置先) に作成されることになりました。[参照] をクリックすると、このフォルダーが自動的に表示されます。プロジェクトがクリーンされビルドされるまで、build specification (ビルドスペック) ファイルは存在しないことに注意してください。

フィールドKlocwork サーバー上のプロジェクトへの接続に戻ります。