Oracle® Developer Studio 12.5: C++ ユーザーズガイド

印刷ビューの終了

更新: 2016 年 7 月
 
 

2.2 コンパイラの起動

この章のこれ以降のセクションでは、CC コマンドで使用する規約、コンパイラのソース行ディレクティブなど、コンパイラの使用に関連する内容について説明します。

2.2.1 コマンド構文

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

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

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

通常、コンパイラオプションの処理は、左から右へと行われ、マクロオプション (ほかのオプションを含むオプション) は、条件に応じて内容が変更されます。ほとんどの場合、同じオプションを 2 回以上指定すると、最後に指定したものだけが有効になり、オプションの累積は行われません。次の点に注意してください。

  • すべてのリンカーオプション、-features–I -l– L-library–pti–R-staticlib-U-verbose-xdumpmacros、および -xprefetch オプションで指定した内容は蓄積され、オーバーライドはされません。

  • -U オプションは、すべて -D オプションのあとに処理されます。

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

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

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

2.2.2 ファイル名に関する規則

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

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

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

C++ コンパイラでは、複数のソースファイルをコマンド行に指定できます。コンパイラに直接または間接的に含まれるファイルも含めて、コンパイラによってコンパイルされる 1 つのソースファイルをコンパイル単位といいます。C++ では、それぞれのソースが別個のコンパイル単位として扱われます。