コンパイル・プロセスの制御

コンパイル・プロセス全体は、以下の 3 つのフェーズから構成されています。プリプロセス、 オブジェクト・コードへの変換、およびリンクです。 デフォルトでは、コンパイラー呼び出しコマンドは、コンパイル・プロセスのすべてのフェーズを呼び出し、 ソース・コードからプログラムを変換して、出力として実行可能ファイルを作成します。 コンパイラーを呼び出す際、入出力ファイルのファイル名を指定すると、コンパイラーは、 入出力ファイルのファイル名サフィックス (拡張子) から開始および終了フェーズを判断します。

また、適切なコンパイラー・オプションを使用すると、どのコンパイル・フェーズでも特定のタイプの出力ファイルを作成することができます。 例えば、xlc または xlC コマンドを -E または -P オプションを指定して呼び出すと、入力ファイルに対して プリプロセス・フェーズだけが実行されます。 コンパイラー呼び出しにより、IBM コンパイラー、アセンブラー、またはリンカーを呼び出すかどうかを 入力ファイル名の拡張子から判断します。アセンブラーとリンカーは、Linux オペレーティング・システムで提供されるツールです。

関連参照


コンパイラーの呼び出し

XL C/C++ では基本コンパイラー呼び出しコマンドを選択でき、 さまざまなバージョン・レベルの C および C++ 言語をサポートしています。 各呼び出しコマンドは、言語レベルのコンパイラー・サブオプション、その他の関連言語フィーチャーのオプション、 および関連する定義済みマクロを自動的に設定します。 多くの場合、C ソース・ファイルをコンパイルするときは xlc コマンドを 使用し、C++ ソース・ファイルをコンパイルするとき、または C と C++ の両方のソース・ファイルが 存在するときは xlC コマンドを使用します。 スレッド化されたアプリケーションの要件をサポートするために、基本コマンドに さまざまなバリエーションが提供されています。 これらのコマンドは、基本コマンドにサフィックス _r を追加した形式になっています。


サポートされている呼び出しコマンド
xlc
xlc++
xlC
cc
c89
c99
xlc_r
xlc++_r
xlC_r
cc_r
c89_r
c99_r
_r 呼び出しは、スレッド・セーフなアプリケーションのコンパイル (「再入可能コンパイラー呼び出し」とも呼ばれます) に使用されます。

xlc++ 呼び出しは xlC 呼び出しと同等です。

また、gxlc および gxlc++ ユーティリティーは特殊なコンパイラー呼び出しです。

関連参照


オブジェクト・モデル

Linux プラットフォームには、オブジェクト・モデルは 1 つしかありません。 AIX (ibm または classic) でサポートされている オブジェクト・モデルに依存するアプリケーションを移植するとき、コードの変更が必要になる場合が あります。 特定のオブジェクト・モデルを指定するためのコンパイラー・オプションおよびプラグマは、Linux には 使用できません。


入出力ファイルの種類

コンパイラーは、ファイル名拡張子を使用して、適切なコンパイル・フェーズを判別し、関連するツールを 呼び出します。

コンパイラーは、入力として次のタイプのファイルを受け入れます。


受け入れられる入力ファイル・タイプ
ファイル・タイプの説明 ファイル名拡張子
C および C++ ソース・ファイル C 言語ソース・ファイルの場合は .c (小文字の c)

C++ ソース・ファイルの場合は .C (大文字の c)、.cc、.cp、.cpp、.cxx、.c++

file_name.c

file_name.C、file_name.cc、 file_name.cpp、file_name.cxx、 file_name.c++

プリプロセスされたソース・ファイル .i file_name.i
オブジェクト・ファイル .o hello.o
アセンブラー・ファイル .s check.s
アーカイブ・ファイル .a v1r5.a
ロード可能なモジュールまたは共用ライブラリー・ファイル .so my_shrlib.so
IPA 制御ファイル (-qipa=file_name) file_name の命名規則は強制されない。 ipa.ctl

コンパイラーを呼び出すときに、次のタイプの出力ファイルを指定できます。


出力ファイルの種類
ファイル・タイプの説明
実行可能ファイル デフォルトでは、a.out
オブジェクト・ファイル file_name.o
ロード可能なモジュールまたは共用ファイル file_name.so
アセンブラー・ファイル file_name.s
プリプロセスされたファイル file_name.i
リスト・ファイル file_name.lst
ターゲット・ファイル file_name.d

関連参照


デフォルトの動作

オプションを指定せずにコンパイラーを呼び出すと、コンパイラーの動作は、次のデフォルト設定によって 制御されます。

IBM Copyright 2003