JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: C++ ユーザーズガイド
search filter icon
search icon

ドキュメントの情報

はじめに

パート I C++ コンパイラ

1.  C++ コンパイラの紹介

2.  C++ コンパイラの使用方法

2.1 コンパイル方法の概要

2.2 コンパイラの起動

2.2.1 コマンド構文

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

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

2.3 バージョンが異なるコンパイラでのコンパイル

2.4 コンパイルとリンク

2.4.1 コンパイルとリンクの流れ

2.4.2 コンパイルとリンクの分離

2.4.3 コンパイルとリンクの整合性

2.4.4 64 ビットメモリーモデル用のコンパイル

2.4.5 コンパイラのコマンド行診断

2.4.6 コンパイラの構成

2.5 指示および名前の前処理

2.5.1 プラグマ

2.5.2 可変数の引数をとるマクロ

2.5.3 事前に定義されている名前

2.5.4 警告とエラー

2.6 メモリー条件

2.6.1 スワップ領域のサイズ

2.6.2 スワップ領域の増加

2.6.3 仮想メモリーの制御

2.6.4 メモリー条件

2.7 C++ オブジェクトに対する strip コマンドの使用

2.8 コマンドの簡略化

2.8.1 C シェルでの別名の使用

2.8.2 CCFLAGS によるコンパイルオプションの指定

2.8.3 make の使用

2.8.3.1 make での CCFLAGS の使用

3.  C++ コンパイラオプションの使い方

パート II C++ プログラムの作成

4.  言語拡張

5.  プログラムの編成

6.  テンプレートの作成と使用

7.  テンプレートのコンパイル

8.  例外処理

9.  プログラムパフォーマンスの改善

10.  マルチスレッドプログラムの構築

パート III ライブラリ

11.  ライブラリの使用

12.  C++ 標準ライブラリの使用

13.  従来の iostream ライブラリの使用

14.  複素数演算ライブラリの使用

15.  ライブラリの構築

パート IV 付録

A.  C++ コンパイラオプション

B.  プラグマ

用語集

索引

2.2 コンパイラの起動

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

2.2.1 コマンド構文

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

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

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

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

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

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

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

2.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++ では、それぞれのソースが別個のコンパイル単位として扱われます。