このセクションでは、クロス コンパイラの定義を C++test に追加して、プロジェクトで使用する方法について説明します。
このセクションの内容
カスタム コンパイラが必要なケース
一般的に、カスタム コンパイラの定義が必要なのは次の場合です。
- 使用しているコンパイラ/リンカーの名前が、サポートされているコンパイラ タイプのデフォルト名と異なる場合 (たとえば gcc コンパイラのカスタム ビルド用など)
- サポートされているコンパイラ タイプとオプション互換がある、未サポートのコンパイラを使用している場合 (たとえば一部のバージョンの ARM コンパイラまたは QNX の QCC)
- 特定のライブラリを参照する固定オプションをリンクで必要とする場合 (たとえば組込みプロジェクト用など)
カスタム コンパイラを定義すれば、コンパイラ/リンカーの名前を変更したり、C++test での コンパイラ/リンカーの使用パターンを変更したりできます。
カスタム コンパイラ定義の追加
C++test のインストール状況によって、カスタム コンパイラ定義の推奨する追加方法は異なります。
- マウントされたファイル システムにおいて、複数のユーザーが同じ C++test を参照している場合 (UNIX システムで一般的): C++test インストール ディレクトリに対する書き込み権限を持つユーザーがカスタム コンパイラ定義を追加するべきです。その後、 作成したカスタム コンパイラ定義を各 C++test ユーザーは利用できます。
- ローカルでのインストールの場合 (Windows で一般的): カスタム コンパイラ定義ファイルをウィザードを使って作成し、共有の場所にコピーします。ユーティリティ ファイルとしてソース管理にチェックインすると、なお良いでしょう。各ユーザーは、インポート機能を使って、自分のローカルの C++test にカスタム定義をインポートします。インポート方法については「カスタム コンパイラ定義のインポート」で説明します。 Importing Custom Compiler Definitions
追加した新しいカスタム コンパイラ定義は、そのコンパイラを使って通常コンパイルしていたすべてのプロジェクトで利用できます。「ターゲット プラットフォームでのテスト ハーネスのビルド」の説明は、適切なコンパイラ定義を使用することを前提としています。これはテスト実行フローの定義の一部です。
C++test にカスタム コンパイラ定義を追加するには、次の操作を行います。
- (オプション) カスタム コンパイラ定義ファイルの場所を指定したい場合、[Parasoft] メニューの [設定] をクリックし、[Parasoft] > [コンフィギュレーション] を選択します。そして、[カスタム ディレクトリ] > [カスタム コンパイラ] チェックボックスをオンにして場所を指定します。
デフォルトでは、カスタム コンパイラ定義は次の場所に保存されます。
<workspace>\metadata\.plugins\com.parasoft.xtest.checkers.eclipse.core.cpp/compilers
[ファイル] メニューの [新規] > [その他] をクリックし、[C++test] > [カスタム コンパイラ] を選択して [次へ] ボタンをクリックします。[新規カスタム コンパイラ] ダイアログが開きます。
[カスタム コンパイラの追加] を選択して [次へ] ボタンをクリックします。
次のカスタム コンパイラ設定を指定します。
コンパイラ名: C++test GUI で探すために使用されるカスタム コンパイラの一意な名前。
コンパイラの種類: 実際のコンパイラに対応するコンパイラの種類。はっきりしない場合は GCC コンパイラのいずれかを選択してください。
コンパイラ識別子: コンフィギュレーション設定の保存に使用される一意なディレクトリ名。使用している OS のファイル システムの制限に従ってディレクトリ名を指定する必要があります。
C コンパイラの実行ファイル: C コンパイラの実行ファイル
C++ コンパイラの実行ファイル: C++ コンパイラの実行ファイル
リンカーの実行ファイル: リンカーの実行ファイル。コンパイラとリンカーの設定は一致していなければなりません。
(オプション) 新しいカスタム コンパイラのためのコンフィギュレーション ファイルのパスを参照するには、[次へ] ボタンをクリックします。
[終了] ボタンをクリックします。
新しいコンパイラ定義を追加すると、 C++test はカスタマイズ可能な一連のコンフィギュレーション ファイルを作成します。次のファイルがあります。
コンパイラ定義ファイル: このファイルは、コンパイラの実行ファイルの設定情報を格納するほか、テスト ハーネスのコンパイル時に使用するコマンドライン パターンについての情報を格納します。
重要
クロス コンパイラを使用する場合、通常ほとんどのユーザーはリンカー コマンド行を変更する必要があります。デフォルトでリンカー コマンド行で使用される次のコンパイル済み C++test ランタイム ライブラリへの参照を削除します。“ $(CPPTEST_LIB_DIR)/cpptestruntime.lib“
これらの参照は、カスタムのクロス コンパイルされたランタイム ライブラリへの参照で置き換えるべきです。例:“linkerCmdLine=$(exe) $(filtered_opts) $(input) $(HOME)/cpptest/ppc603/cpptestruntime.a -o $(output)”
ランタイム ライブラリのビルド方法については、「C/C++test ランタイム ライブラリのビルド」を参照してください。- C コンパイラ定義ファイル: このファイルは
c.psrc
です。 - C++ コンパイラ定義ファイル: このファイルは
cpp.psrc
です。
カスタム コンパイラ定義のインポート
指定のカスタム コンパイラの場所にあるカスタム コンパイラ定義は、起動時に自動的にロードされて使用できるようになります。したがって、カスタム コンパイラ定義を「インポート」する方法の 1 つは、カスタム コンパイラの場所にカスタム コンパイラ定義を保存することです。デフォルトでは、カスタム コンパイラ定義は次の場所に保存されます。<workspace>\.metadata\.plugins\com.parasoft.xtest.checkers.eclipse.core.cpp/compilersこの場所を変更するには、[Parasoft] メニューの [設定] をクリックし、[Parasoft] > [コンフィギュレーション] を選択します。そして、[カスタム ディレクトリ] > [カスタム コンパイラ] チェックボックスをオンにして場所を指定します。
他のユーザーが作成したカスタム コンパイラの定義をインポートすることもできます。次の操作を行います。
[ファイル] メニューの [新規] > [その他] をクリックし、[C++test] > [カスタム コンパイラ] を選択して [次へ] ボタンをクリックします。 [新規カスタム コンパイラ] ダイアログが開きます。
- [カスタム コンパイラのインポート] を選択して [次へ] ボタンをクリックします。
- [ベースコンパイラ定義ディレクトリ] フィールドに、インポートするコンパイラ定義ファイルがあるディレクトリを指定します (コンパイラ定義ファイルについては「カスタム コンパイラ定義の追加」を参照)。
- インポートするコンパイラ ディレクトリの名前が、既存のコンフィギュレーションと重ならないように注意してください。
- [終了] をクリックします。
ビルド オプションの設定
カスタム コンパイラを追加したら、プロジェクト設定のビルド オプションを適切に設定する必要があります。
- C++test GUI で C++test プロジェクトをロード (または作成) します。
- 詳細については、「プロジェクトの作成」 を参照してください。
プロジェクト ノードを右クリックし、ショートカット メニューの [プロパティー] をクリックします。
- [Parasoft] > [C++test] > [ビルド設定] を展開します。
- [コンパイラ設定] の [種類] ドロップダウン リストからカスタム コンパイラの名前を選択します。
- リンカー オプションを変更して、カスタム コンパイラを使ってビルドするライブラリをリンカー オプションに追加します。 例:
変更前:${cpptest:original_options}
変更後:${cpptest:original_options} "C:\cygwin\home\<user_name>\Custom_Compiler\source\target\libcpptestruntime.a"
- [適用] ボタンをクリックしてから [OK] をクリックします。
ヒント
- コンパイラの種類の設定は、実際のコンパイラの名前と一致するべきです。
- コンパイラのリンカーの設定は、環境に合わせて設定して一貫した設定にするべきです。
- マネージド Make プロジェクト、コンパイラ、およびリンカーの設定は、管理プロジェクト設定で指定します。
- プロジェクト オプションの設定の詳細については 「プロジェクトとファイルのオプション設定」 を参照してください。