コンパイラーは、ソース・ファイルを表示される順に処理します。コンパイラーは指定されたソース・ファイルが見つからないと、エラー・メッセージを出し、次に指定されたファイルへ進みます。
ただし、リンカーは実行されず、一時オブジェクト・ファイルは除去されます。
コンパイラーはデフォルトで、指定されたすべてのソース・ファイルをプリプロセスしてコンパイルします。通常はこのデフォルトを使用しますが、コンパイラーを使用して、コンパイルなしでソース・ファイルをプリプロセスできます。詳しくは、『プリプロセッシング』を参照してください。
以下のタイプのファイルを
XL C コンパイラーに入力することができます。
- C ソース・ファイル
- これらは C ソース・コードを含むファイルです。
C コンパイラーを使用して C 言語ソース・ファイルをコンパイルするには、-qsourcetype=c オプションでコンパイルしないのであれば、ソース・ファイルに .c (小文字の c) サフィックスを付ける必要があります。
- プリプロセスされたソース・ファイル
- プリプロセスされたソース・ファイルは .i サフィックスを含みます (例えば、file_name.i)。
コンパイラーは、プリプロセス済みのソース・ファイル file_name.i を、.c ファイル ファイルと同じようにコンパイラーに送り、再度プリプロセスを実行します。
プリプロセスされたファイルは、マクロやプリプロセッサー・ディレクティブの検査に役立ちます。
- オブジェクト・ファイル
- オブジェクト・ファイルは .o サフィックスを含まなければなりません (例えば
file_name.o)。オブジェクト・ファイル、ライブラリー・ファイル、ストリップされていない実行可能ファイルは、リンカーへの入力として使用できます。
コンパイル後、リンカーは実行可能ファイルを作成するために、指定されたすべてのオブジェクト・ファイルをリンクします。
- アセンブラー・ファイル
- アセンブラー・ファイルは、-qsourcetype=assembler オプションでコンパイルしないのであれば、.s
のサフィックスを持っていなければなりません (例えば、file_name.s)。
アセンブラー・ファイルは、オブジェクト・ファイルを作成するためにアセンブルされます。
- プリプロセスされていないアセンブラー・ファイル
- プリプロセスされていないアセンブラー・ファイルは、.S というサフィックスを指定する必要があります(file_name.S など)。ただし、-qsourcetype=assembler-with-cpp オプションを使用してコンパイルする場合は、このサフィックスを指定する必要はありません。
コンパイラーは、.S 拡張子を含むすべてのソース・ファイルを、プリプロセッシングを必要とするアセンブラー言語のソース・ファイルであるかのようにコンパイルします。
- 共有ライブラリー・ファイル
- 共有ライブラリー・ファイルには通常 .a サフィックスが付きます (例えば file_name.a) が、.so サフィックスを付けることもできます (例えば、file_name.so)。
- 非ストリップの実行可能ファイル
- オペレーティング・システムの strip コマンドを使用してストリップされていない Extended Common Object File Format (XCOFF) ファイルは、コンパイラーへの入力として使用できます。
詳しくは、「AIX® コマンド解説書」の『strip コマンド』、および「AIX ファイル・リファレンス」の a.out ファイル形式の説明を参照してください。