• Imagix 4D ユーザガイド
  • 目次

コンパイラ設定ファイル

Imagix 4D アナライザはコンパイラから独立しています。ソフトウェアをコンパイラと同じ方法で解析するには、コンパイラをエミュレートするように Imagix 4D をセットアップしなければなりません。そのために必要となるのがコンパイラ設定ファイルです。

コンパイラ設定ファイルは ../imagix/user/cc_cfg に格納されおり、日常的にコードのコンパイルに利用するコンパイラのように、Imagix 4D をセットアップすることが可能です。このファイルには、C ソースコードが記述されており、アナライザに必要となる3つの機能を提供します。まず、stdio.h などのシステム・ヘッダファイルの検索場所を、アナライザに認識させます。記述例は以下の通りです。

#pragma cmdflag -S/usr/include
次に、コンパイラ設定ファイルはコンパイラによってサポートされる言語拡張機能を補正します。例えば、多くの C コンパイラはキーワード near をサポートしています。このキーワードはコンパイラによるメモリの割り当てに影響を及ぼしますが、ソフトウェアの構造に与える影響はありません。この他にもキーワード byte は、標準 C 言語の型ではありませんが、一部のコンパイラには事前定義されています。コンパイラ設定ファイルを使用することで、以下のような拡張機能の補正を行うためのマクロ定義、および typedef を作成することが可能です。

#define near
#define byte char
typedef char byte;
最後に、コンパイラ・エミュレーションは、システム・ヘッダファイルの前処理時に使用するマクロ定義に関係します。コンパイラのヘッダファイルは、数多くのターゲットシステム向けのソフトウェアをビルドするようセットアップされることがよくあります。そのようなヘッダファイルには、コンパイラがビルド対象のターゲットに適切なヘッダファイルのソースコード部分を使用するため、 #ifdef _I386 のような条件付きコンパイル・ディレクティブが記述されています。コンパイラ設定ファイルで、このような暗黙的なコンパイラのマクロ定義をサポートするには、同ファイルに次のような文を明記してください。

#define __I386
上記のキーワード拡張および暗黙的なマクロ定義に関する説明は、多くの場合コンパイラのドキュメントに記載されています。このためキーワード、言語拡張、事前定義マクロ、マクロ定義に関係する情報は、そちらを参照ください。

Imagix 4D は、主なコンパイラ用の設定ファイルがあらかじめセットアップされています。当該コンパイラを使用する場合、各ビルド環境に格納されているシステム・ヘッダファイルの場所を反映させるために、設定ファイルを多少、修正する必要が生じます。該当しないコンパイラを使用する際は、必須ではありませんが、使用するコンパイラをエミュレートするための設定ファイルを作成することを、強く推奨します。

詳細については、「コンパイラ設定ファイルの構成」を参照してください。また、「gccベースのコンパイラ」用の特別なユーティリティと、Microsoft Visual C++用の特別な手順があります。