C++ コンパイラパッケージは、フロントエンド (CC コマンド本体)、オプティマイザ (最適化)、コードジェネレータ (コード生成)、アセンブラ、テンプレートのプリリンカー (リンクの前処理をするプログラム)、リンクエディタから構成されています。コマンド行オプションでほかの指定を行わないかぎり、CC コマンドはこれらの構成要素をそれぞれ起動します。
これらの構成要素はいずれもエラーを生成する可能性があり、構成要素はそれぞれ異なる処理を行うため、エラーを生成した構成要素を識別することがエラーの解決に役立つことがあります。それには、-v オプションと -dryrun オプションを使用します。
次の表に示すように、コンパイラの構成要素への入力ファイルには異なるファイル名接尾辞が付いています。どのようなコンパイルを行うかは、この接尾辞で決まります。ファイル名接尾辞の意味については、表 2–1 を参照してください。
表 2–2 C++ コンパイルシステムの構成要素| コンポーネント | 内容の説明 | 使用時の注意 | 
|---|---|---|
| フロントエンド (コンパイラプリプロセッサ (前処理系) とコンパイラ) | ||
| コードオプティマイザ | -xO[2-5]、-fast | |
| x86: 中間言語トランスレータ | -xO[2-5]、-fast | |
| SPARC: アセンブリ言語テンプレートのインライン展開 | .il ファイルを指定 | |
| アセンブラ | ||
| SPARC: コード生成、インライン機能、アセンブラ | 
 | |
| ube | x86: コードジェネレータ | -xO[2-5]、-fast | 
| テンプレートのプリリンカー | -instances=extern オプションのみで使用します。 | |
| リンクエディタ |