|
ステップ 1 - コンパイラ設定ファイルの設定まず C / C++ ソフトウェアの注意事項として、プリプロセッサのオプションを正しく指定することは、コードをロードする上で概念的かつ技術的に、最も困難な部分であることを念頭においてください。
原理ソースコードをコンパイルすると、Makefile、ビルドスクリプトまたは IDE が、ソースファイルのリストと併せて -I、-D、-U オプションをコンパイラに渡します。これらのオプションは、コンパイラがヘッダファイルを検索し、コードの解析時に使用するマクロ定義を判断するために使用されるのです。これらのマクロは、処理の対象となるソースコード部分や、アナライザのビルトイン・プリプロセッサが無視する箇所を制御するため、#ifdef 文と併用して使用されます。例えば、PP Flags フィールドに「-Dfoo」と入力し、コードに「#ifndef foo」が記述されている場合、対応する #endif に到達するまで、それ以降のコードはスキップされます。ステップ2で、ビルドスクリプトまたは Makefile によって渡されるオプションの指定方法について説明します。 明示的に渡されるプリプロセッサ・オプションにくわえ、コンパイラは独自の暗黙的な -I、-D、-U オプションも使用します。これらのオプションはシステム・ヘッダファイルの検索や、精確な解析を実行するために必要となります。 Imagix 4D アナライザは、コンパイラに依存しません。コンパイラ固有のヘッダファイルの検索場所や、解析時に使用するマクロ定義を指定することで、Imagix 4D アナライザはコンパイラと同等の動作を行うことが可能です。 詳細については「コンパイラ設定ファイル」を参照してください。また、 gccベースのコンパイラ用の特別なユーティリティとMicrosoft Visual C++用の特別な操作があります。 方法アナライザをコンパイラのように動作させるための方法が、2通り用意されています。1つは、コンパイラに明示的に渡される通常の -I、-D、-U オプションを指定する際に(ステップ 2で実施)、コンパイラによって暗黙的に追加される -I、-D、-U オプションを指定する方法です。もう1つは、こちらが強く推奨される方法となりますが、Imagix 4D のコンパイラ設定ファイル(.inc ファイル)を使用したMakeの実行です。この方法では、設定ファイルにシステム・ヘッダファイルの場所およびマクロ定義を記述し、その後 [データソース] ダイアログ([プロジェクト] > [データソース])で、使用する設定ファイルを指定します。 これらの設定ファイルは ../imagix/user/cc_cfg ディレクトリに格納されており、この他にも .inc ファイルがいくつか保存されています。ファイルのベースとなる名前は、その特定の設定ファイルがサポートするコンパイラおよびターゲット・プラットフォームを示します。 設定ファイルを新規に追加したり、既存のものを修正したりすることも可能です。通常は各環境で実際にインストールされたシステム・ヘッダファイルの場所を反映するために、既存のファイルに定義されているシステム・インクルード・ディレクトリの場所を修正する必要があります。 通常の -I、-D、-U オプションにコンパイラが暗黙的に -I、-D、-U オプションを単純に追加することに比べ、コンパイラ設定ファイルを使用する方法には、いくつかのメリットがあります。まず、使用するコンパイル環境用の設定が既に存在する場合は、ユーザが行う一部の作業を省略することができます。次に、毎回、新しいプロジェクトを作成する場合とは対照的に、各環境に必要となる情報の設定作業は、一度だけで済みます。最後に、何度でも容易に設定を微調整することが可能です。 1a. コンパイラ設定ファイルの選択../imagix/user/cc_cfg ディレクトリに移動し、各環境に合う設定ファイルを検索します。gcc ベースのコンパイラを使用している場合、../imagix/bin/imagix-gnu ユーティリティを実行することで、自動的にコンパイラに対してクエリが行われ、各コンパイラや環境向けの設定ファイルが作成されます。 適切なファイルが存在しない場合は、使用するコンパイラやターゲットを示す名前を用いて、新規に設定ファイルを作成してください。このような場合でも、通常は類似のコンパイラ / ターゲット用の設定ファイルが既に存在していますので、それを作成した新しいファイルにコピーし適宜修正の上、利用することもできます。 1b. システム・ヘッダファイル用のパスの設定設定ファイルを選択もしくは作成したのち、インクルード・ディレクトリの場所を、それぞれの環境に適合するよう修正します。各 .inc ファイルの冒頭には、1行以上にわたりヘッダファイルの場所を指定する行が記述されています。 arm_cross.inc ファイルから引用した例を、以下に示します。
1c. その他の設定変更大半の設定ファイルの冒頭には、特定のプリプロセッサやコンパイラ・オプションに一致するよう、数多くの定義が記述されています。 以下に renesas_rx.inc ファイルの一部を、例として示します。
別のページに記載のステップ 3では、解析結果のレビューや、コンパイラのドキュメントを理解する過程で、.inc ファイルを微調整する必要が生じることがあります。コンパイラ設定ファイルのカスタマイズ方法に関する詳細な説明は、../imagix/user/cc_cfg ディレクトリにある readme.txt を参照してください。
|