コンパイル・プロセス全体は、以下の 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 |
関連参照
オプションを指定せずにコンパイラーを呼び出すと、コンパイラーの動作は、次のデフォルト設定によって 制御されます。