C++ ユーザーズガイド

コンパイラの起動

この後の節では、CC コマンドで使用する規約、コンパイラのソース行指令など、コンパイラの使用に関連する内容について説明します。

コマンド構文

コンパイラの一般的なコマンド行の構文を次に示します。


CC [options] [source-files] [object-files] [libraries]

options は、先頭にダッシュ (-) またはプラス記号 (+) の付いたキーワード (オプショ ン) です。このオプションには、引数をとるものがあります。

通常、コンパイラオプションの処理は、左から右へと行われ、マクロオプション (他のオプションを含むオプション) は、条件に応じて内容が変更されます。ただし、次の点に注意してください。

ソースファイル、オブジェクトファイル、およびライブラリは、コマンド行に指定した順にコンパイルとリンクが行われます。

次の例では、CC を使って 2 つのソースファイル (growth.Cfft.C) をコンパイルし、実行時デバッグを有効にして growth という名前の実行可能ファイルを作成します。


demo% CC -g -o growth growth.C fft.C

ファイル名に関する規則

コンパイラがコマンド行に指定されたファイルをどのように処理するかは、ファイル名に付加された接尾辞で決まります。次の表以外の接尾辞を持つファイルや、接尾辞がないファイルはリンカーに渡されます。

表 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

動的 (共有) ライブラリ 

共有オブジェクトの名前をリンカーに渡す。 

複数のソースファイルの使用

C++ コンパイラでは、複数のソースファイルをコマンド行に指定できます。コンパイラが直接または間接的にサポートするファイルも含めて、コンパイラによってコンパイルされる 1 つのソースファイルを「コンパイル単位」といいます。C++ では、それぞれのソースが別個のコンパイル単位として扱われます。1 つのソースファイルには、手続き (メインプログラム、関数、モジュールなど) をいくつでも組み込めます。ただし、関連する手続きを 1 つのファイルに集めることに利点があるように、1 つのファイルに 1 つの手続きが入るようにアプリケーションを編成することにも利点があります。このことに関しては、『C++ プログラミングガイド』に説明があります。