コンパイラがコマンド行に指定されたファイルをどのように処理するかは、ファイル名に付加された接尾辞で決まります。次の表以外の接尾辞を持つファイルや、接尾辞がないファイルはリンカーに渡されます。
表 2-1 C++ コンパイラが認識できるファイル名接尾辞
接尾辞 |
言語 |
処理 |
---|---|---|
.c |
C++ |
C++ ソースファイルとしてコンパイルし、オブジェクトファイルを現在のディレクトリに入れる。オブジェクトファイルのデフォルト名は、ソースファイル名に .o 接尾辞が付いたものになる。 |
.C |
C++ |
.c 接尾辞と同じ処理。 |
.cc |
C++ |
.c 接尾辞と同じ処理。 |
.cpp |
C++ |
.c 接尾辞と同じ処理。 |
.cxx |
C++ |
.c 接尾辞と同じ処理。 |
.i |
C++ |
プリプロセッサの出力ファイルを C++ ソースファイルとして扱い、.c 接尾辞と同じ処理をする。 |
.s |
アセンブラ |
ソースファイルをアセンブラでアセンブルする。 |
.S |
アセンブラ |
C 言語プリプロセッサとアセンブラ用に ソースファイルをアセンブルする。 |
.il |
インライン展開 |
アセンブリ用のインラインテンプレートファイルを使ってインライン展開を行う。コンパイラはテンプレートを使って、選択されたルーチンのインライン呼び出しを展開する (インラインテンプレートファイルは、特殊なアセンブラファイルです。inline(1) のマニュアルページを参照してください)。 |
.o |
オブジェクト ファイル |
オブジェクトファイルをリンカーに渡す。 |
.a |
静的 (アーカイブ) ライブラリ |
オブジェクトライブラリの名前をリンカーに渡す。 |
.so .so.n |
動的 (共有) ライブラリ |
共有オブジェクトの名前をリンカーに渡す。 |