この節には、参照しやすいように、コンパイラオプションが機能別に分類されています。各オプションの詳細は、付録 A C++ コンパイラオプションを参照してください。
これらのオプションは、特に記載がないかぎりすべてのプラットフォームに適用されます。Solaris SPARC システム版のオペレーティングシステムに特有の機能は SPARC として表記され、x86 システム版のオペレーティングシステムに特有の機能は x86 として表記されます。
| オプション | 処理 | 
|---|---|
| -compat | コンパイラの主要リリースとの互換モードを設定します。 | 
| +e{0|1} | 仮想テーブル生成を制御します。 | 
| -g | デバッグ用にコンパルします。 | 
| -KPIC | 位置に依存しないコードを生成します。 | 
| -Kpic | 位置に依存しないコードを生成します。 | 
| -mt | マルチスレッド化したコードのコンパイルとリンクを行います。 | 
| -xaddr32 | コードを 32 ビットアドレス空間に制限します (x86/x64)。 | 
| -xarch | ターゲットアーキテクチャーを指定します。 | 
| -xcode=a | (SPARC) コードのアドレス空間を指定します。 | 
| -Merge | (SPARC) データセグメントとテキストセグメントをマージします。 | 
| -xtarget | ターゲットシステムを指定します。 | 
| –xmodel | 64 ビットオブジェクトの形式を Solaris x86 プラットフォーム用に変更します。 | 
| +w | 意図しない結果が生じる可能性のあるコードを特定します。 | 
| +w2 | +w で生成される警告以外に、通常は問題がなくても、プログラムの移植性を低下させる可能性がある技術的な違反についての警告も生成します。 | 
| -xregs | コンパイラは、一時記憶領域として使用できるレジスタ (一時レジスタ) が多ければ、それだけ高速なコードを生成します。このオプションは、利用できる一時レジスタを増やしますが、必ずしもそれが適切であるとはかぎりません。 | 
| -z arg | リンカーオプション | 
| オプション | 処理 | 
|---|---|
| -instlib | 指定ライブラリにすでに存在しているテンプレートインスタンスの生成を禁止します。 | 
| -m32|-m64 | コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 | 
| -xinstrument | スレッドアナライザで分析するために、プログラムをコンパイルして計測します。 | 
| -xjobs | コンパイラが処理を行うために作成するプロセスの数を設定します。 | 
| -xpch | 共通の一連のインクルードファイル群を共有するソースファイルを持つアプリケーションのコンパイル時間を短縮できます。 | 
| -xpchstop | -xpch でプリコンパイル済みヘッダーファイルを作成する際に適用される、最後のインクルードファイルを指定します。 | 
| -xprofile_ircache | (SPARC) -xprofile=collect で保存されたコンパイルデータを再使用します。 | 
| -xprofile_pathmap | (SPARC) 1 つのプロファイルディレクトリに存在する複数のプログラムや共有ライブラリをサポートします。 | 
次の表は、リンク時とコンパイル時の両方に指定する必要があるオプションを一覧表示します。
表 3–4 コンパイル時とリンク時のオプション| オプション | 処理 | 
|---|---|
| -fast | 実行可能コードの速度を向上させるコンパイルオプションの組み合わせを選択します。 | 
| -m32|-m64 | コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 | 
| -mt | --D_REENTRANT --lthread に展開されるマクロオプションです。 | 
| -xarch | 命令セットアーキテクチャーを指定します。 | 
| -xautopar | 複数プロセッサ用の自動並列化を有効にします。 | 
| -xhwcprof | (SPARC) コンパイラのハードウェアカウンタによるプロファイリングのサポートを有効にします。 | 
| -xipo | 内部手続き解析パスを呼び出すことにより、プログラム全体の最適化を実行します。 | 
| -xlinkopt | 再配置可能なオブジェクトファイルのリンク時の最適化を実行します。 | 
| -xmemalign | (SPARC) メモリーの予想される最大境界整列と境界整列していないデータアクセスの動作を指定します。 | 
| -xopenmp | 明示的な並列化のための OpenMP インタフェースをサポートします。このインタフェースには、ソースコード指令セット、実行時ライブラリルーチン、環境変数などが含まれます。 | 
| -xpagesize | スタックとヒープの優先ページサイズを設定します。 | 
| -xpagesize_heap | ヒープの優先ページサイズを設定します。 | 
| -xpagesize_stack | スタックの優先ページサイズを設定します。 | 
| -xpg | gprof(1) でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。 | 
| -xprofile | プロファイルのデータを収集、または最適化のためにプロファイルを使用します。 | 
| -xvector=lib | ベクトルライブラリ関数を自動呼び出しします。 | 
| オプション | 処理 | 
|---|---|
| +d | C++ インライン関数を展開しません。 | 
| -dryrun | ドライバがコンパイラに渡すオプションを表示しますが、コンパイルはしません。 | 
| -E | C++ ソースファイルにプリプロセッサを実行し、結果を stdout に出力しますが、コンパイルはしません。 | 
| -g | デバッグ用にコンパルします。 | 
| -g0 | デバッグ用にコンパイルしますが、インライン機能は無効にしません。 | 
| -H | インクルードされるファイルのパス名を出力します。 | 
| -keeptmp | コンパイル中に作成されたすべての一時ファイルを残します。 | 
| -migration | 以前のコンパイラからの移行に関する情報の参照先を表示します。 | 
| -P | ソースの前処理だけを行い、.i ファイルに出力します。 | 
| -Qoption | オプションをコンパイル中の各処理に直接渡します。 | 
| -readme | README ファイルの内容を表示します。 | 
| -s | 実行可能ファイルからシンボルテーブルを取り除きます。 | 
| -temp=dir | 一時ファイルのディレクトリを指定します。 | 
| -verbose=vlst | コンパイラの冗長性を制御します。 | 
| -xcheck | スタックオーバーフローの実行時検査を追加します。 | 
| -xdumpmacros | 定義内容、定義および解除された位置、使用されている場所に関する情報を出力します。 | 
| -xe | 構文と意味のエラーのチェックだけを行います。 | 
| -xhelp=flags | コンパイラオプションの要約を一覧表示します。 | 
| -xport64 | 32 ビットアーキテクチャーから 64 ビットアーキテクチャーへの移植中の一般障害について警告します。 | 
| オプション | 処理 | 
|---|---|
| -fma | (SPARC) 浮動小数点の積和演算 (FMA) 命令の自動生成を有 効にします。 | 
| -fns[={no|yes}] | (SPARC) SPARC 非標準浮動小数点モードを有効または無効にします。 | 
| -fprecision=p | x86: 浮動小数点精度モードを設定します。 | 
| -fround=r | 起動時に IEEE 丸めモードを有効にします。 | 
| -fsimple=n | 浮動小数点最適化の設定を行います。 | 
| -fstore | x86: 浮動小数点式の精度を強制的に使用します。 | 
| -ftrap=tlst | 起動時に IEEE トラップモードを有効にします。 | 
| -nofstore | x86: 強制された式の精度を無効にします。 | 
| -xlibmieee | 例外時に libm が数学ルーチンに対し IEEE 754 値を返します。 | 
| オプション | 処理 | 
|---|---|
| -compat | コンパイラの主要リリースとの互換モードを設定します。 | 
| -features=alst | C++ の各機能を有効化または無効化します。 | 
| -xchar | 文字型が符号なしと定義されているシステムからのコードの移行を容易に行えるようにします。 | 
| -xldscope | 共有ライブラリをより速くより安全に作成するため、変数と関数の定義のデフォルトリンカースコープを制御します。 | 
| -xthreadvar | (SPARC) デフォルトのスレッドローカルな記憶装置へのアクセスモードを変更します。 | 
| -xtrigraphs | 文字表記シーケンスを認識します。 | 
| -xustr | 16 ビット文字で構成された文字リテラルを認識します。 | 
| オプション | 処理 | 
|---|---|
| -Bbinding | ライブラリのリンク形式を、シンボリック、動的、静的のいずれかから指定します。 | 
| -d{y|n} | 実行可能ファイル全体に対して動的ライブラリを使用できるかどうか指定します。 | 
| -G | 実行可能ファイルではなく動的共有ライブラリを構築します。 | 
| -hname | 生成される動的共有ライブラリに内部名を割り当てます。 | 
| -i | ld(1) がどのような LD_LIBRARY_PATH 設定も無視します。 | 
| -Ldir | dir に指定したディレクトリを、ライブラリの検索に使用するディレクトリとして追加します。 | 
| -llib | リンカーのライブラリ検索リストに liblib.a または liblib.so を追加します。 | 
| -library=llst | 特定のライブラリとそれに対応するファイルをコンパイルとリンクに強制的に組み込みます。 | 
| -mt | マルチスレッド化したコードのコンパイルとリンクを行います。 | 
| -norunpath | ライブラリのパスを実行可能ファイルに組み込みません。 | 
| -Rplst | 動的ライブラリの検索パスを実行可能ファイルに組み込みます。 | 
| -staticlib=llst | 静的にリンクする C++ ライブラリを指定します。 | 
| -xar | アーカイブライブラリを作成します。 | 
| -xbuiltin[=opt] | 標準ライブラリ呼び出しの最適化を有効または無効にします。 | 
| -xia | (Solaris) 適切な区間演算ライブラリをリンクし、浮動小数点環境を設定します。 | 
| -xlang=l[,l] | 該当する実行時ライブラリをインクルードし、指定された言語に適切な実行時環境を用意します。 | 
| -xlibmieee | 例外時に libm が数学ルーチンに対し IEEE 754 値を返します。 | 
| -xlibmil | 最適化のために、選択された libm ライブラリルーチンをインライン展開します。 | 
| -xlibmopt | 最適化された数学ルーチンのライブラリを使用します。 | 
| -xnolib | デフォルトのシステムライブラリとのリンクを無効にします。 | 
| -xnolibmil | コマンド行の -xlibmil を取り消します。 | 
| -xnolibmopt | 数学ルーチンのライブラリを使用しません。 | 
次のオプションは、現在は廃止されているためにコンパイラに受け入れられないか、将来のリリースでは削除されます。
| オプション | 処理 | 
|---|---|
| -library=%all | 将来のリリースで削除されます。 | 
| -xlic_lib=sunperf | Sun Performance Library にリンクするには、—library=sunperf を使用します。 | 
| -xlicinfo | 非推奨。 | 
| -noqueue | ライセンス情報のキューイングを行いません。 | 
| -ptr | コンパイラは無視します。将来のリリースのコンパイラがこのオプションを別の意味で使用する可能性もあります。 | 
| -sb、—sbfast、—xsb、—xsbfast | 廃止され、メッセージを表示されずに無視されます。 | 
| -vdelx | 将来のリリースで削除されます。 | 
| -x386 | 適切な —xtarget オプションを使用します。 | 
| -x486 | 適切な —xtarget オプションを使用します。 | 
| -xcg89 | -xtarget=ss2 を使用します。 | 
| -xcrossfile | 代わりに -xipo を使用してください。 | 
| -xnativeconnect | 廃止。これに代わるオプションはありません。 | 
| -xprefetch=yes | 代わりに - xprefetch=auto,explicit を使用します。 | 
| -xprefetch=no | 代わりに -xprefetch=no%auto,no%explicit を使用します。 | 
| -xvector=yes | 代わりに、--xvector=lib を使用します。 | 
| -xvector=no | 代わりに、-xvector=none を使用します。 | 
| オプション | 処理 | 
|---|---|
| -c | コンパイルのみ。オブジェクト (.o) ファイルを作成しますが、リンクはしません。 | 
| -dryrun | ドライバからコンパイラに対して発行されたコマンド行を表示しますが、コンパイルを行いません。 | 
| -E | C++ ソースファイルにプリプロセッサを実行し、結果を stdout に出力しますが、コンパイルはしません。 | 
| -erroff | コンパイラの警告メッセージを抑止します。 | 
| -errtags | 各警告メッセージのメッセージタグを表示します。 | 
| -errwarn | 指定の警告メッセージが出力されると、cc はエラーステータスを返して終了します。 | 
| -filt | コンパイラがリンカーエラーメッセージに適用するフィルタリングを抑止します。 | 
| -G | 実行可能ファイルではなく動的共有ライブラリを構築します。 | 
| -H | インクルードされるファイルのパス名を出力します。 | 
| -migration | 以前のコンパイラからの移行に関する情報の参照先を表示します。 | 
| -o filename | 出力ファイルや実行可能ファイルの名前を filename にします。 | 
| -P | ソースの前処理だけを行い、.i ファイルに出力します。 | 
| -Qproduce sourcetype | CC ドライバに sourcetype (ソースタイプ) 型のソースコードを生成するよう指示します。 | 
| -s | 実行可能ファイルからシンボルテーブルを取り除きます。 | 
| -verbose=vlst | コンパイラの冗長性を制御します。 | 
| +w | 必要に応じて追加の警告を出力します。 | 
| +w2 | 該当する場合は、より多くの警告を出力します。 | 
| -w | 警告メッセージを抑止します。 | 
| -xdumpmacros | 定義内容、定義および解除された位置、使用されている場所に関する情報を出力します。 | 
| -xe | ソースファイルの構文と意味のチェックだけを行い、オブジェクトや実行可能コードの出力はしません。 | 
| -xhelp=flags | コンパイラオプションの要約を一覧表示します。 | 
| -xhelp=readme | README ファイルの内容を表示します。 | 
| -xM | メイクファイルの依存情報を出力します。 | 
| -xM1 | 依存情報の生成は行いますが、 /usr/include の組み込みはしません。 | 
| -xtime | コンパイル処理ごとの実行時間を報告します。 | 
| -xwe | すべての警告をエラーに変換します。 | 
| -z arg | リンカーオプション | 
| オプション | 処理 | 
|---|---|
| -fast | 一部のプログラムで最適な実行速度が得られるコンパイルオプションの組み合わせを選択します。 | 
| -fma | (SPARC) 浮動小数点の積和演算 (FMA) 命令の自動生成を有 効にします。 | 
| -g | パフォーマンスの解析 (およびデバッグ) に備えてプログラムを用意するようにコンパイラとリンカーの両方に指示します。 | 
| -s | 実行可能ファイルからシンボルテーブルを取り除きます。 | 
| -m32|-m64 | コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 | 
| -xalias_level | コンパイラで、型に基づく別名の解析および最適化を実行するように指定します。 | 
| -xarch=isa | ターゲットのアーキテクチャー命令セットを指定します。 | 
| -xbinopt | あとで最適化、変換、分析を行うために、バイナリを準備します。 | 
| -xbuiltin[=opt] | 標準ライブラリ呼び出しの最適化を有効または無効にします。 | 
| -xcache=c | (SPARC) オプティマイザのターゲットキャッシュプロパティーを定義します。 | 
| -xcg89 | 汎用の SPARC V7 アーキテクチャー用のコンパイルを行います。 | 
| -xcg92 | SPARC V8 アーキテクチャー用のコンパイルを行います。 | 
| -xchip=c | ターゲットのプロセッサチップを指定します。 | 
| -xF | リンカーによる関数と変数の順序変更を有効にします。 | 
| -xinline=flst | どのユーザーが作成したルーチンをオプティマイザでインライン化するかを指定します。 | 
| -xipo | 内部手続きの最適化を実行します。 | 
| -xlibmil | 最適化のために、選択された libm ライブラリルーチンをインライン展開します。 | 
| -xlibmopt | 最適化された数学ルーチンライブラリを使用します。 | 
| -xlinkopt | (SPARC) オブジェクトファイル内のあらゆる最適化のほかに、結果として出力される実行可能ファイルや動的ライブラリのリンク時最適化も行います。 | 
| -xmemalign=ab | (SPARC) メモリーの予想される最大境界整列と境界整列していないデータアクセスの動作を指定します。 | 
| -xnolibmil | コマンド行の -xlibmil を取り消します。 | 
| -xnolibmopt | 数学ルーチンのライブラリを使用しません。 | 
| -xOlevel | 最適化レベルを level にします。 | 
| -xpagesize | スタックとヒープの優先ページサイズを設定します。 | 
| -xpagesize_heap | ヒープの優先ページサイズを設定します。 | 
| -xpagesize_stack | スタックの優先ページサイズを設定します。 | 
| -xprefetch[=lst] | 先読みをサポートするアーキテクチャーで先読み命令を有効にします。 | 
| -xprefetch_level | -xprefetch=auto を設定したときの先読み命令の自動挿入を制御します。 | 
| -xprofile | 実行時プロファイルデータを収集したり、このデータを使って最適化します。 | 
| -xregs=rlst | 一時レジスタの使用を制御します。 | 
| -xsafe=mem | (SPARC) メモリーに関するトラップを起こさないものとします。 | 
| -xspace | (SPARC) コードサイズが大きくなるような最適化は行いません。 | 
| -xtarget=t | ターゲットの命令セットと最適化のシステムを指定します。 | 
| -xthreadvar | デフォルトのスレッドローカル記憶装置アクセスモードを変更します。 | 
| -xunroll=n | 可能な場合は、ループを展開します。 | 
| -xvis | (SPARC) VIS 命令セットに定義されているアセンブリ言語テンプレートをコンパイラが認識します。 | 
| オプション | 処理 | 
|---|---|
| -Dname[=def] | シンボル name をプリプロセッサに定義します。 | 
| -E | C++ ソースファイルにプリプロセッサを実行し、結果を stdout に出力しますが、コンパイルはしません。 | 
| -H | インクルードされるファイルのパス名を出力します。 | 
| -P | ソースの前処理だけを行い、.i ファイルに出力します。 | 
| -Uname | プリプロセッサシンボル name の初期定義を削除します。 | 
| -xM | メイクファイルの依存情報を出力します。 | 
| -xM1 | 依存情報を生成しますが、/usr/include は除きます。 | 
| オプション | 処理 | 
|---|---|
| -p | prof でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。 | 
| -xpg | gprof プロファイラによるプロファイル処理用にコンパイルします。 | 
| -xprofile | 実行時プロファイルデータを収集したり、このデータを使って最適化します。 | 
| オプション | 処理 | 
|---|---|
| -migration | 以前のコンパイラからの移行に関する情報の参照先を表示します。 | 
| -xhelp=flags | コンパイラオプションの要約を一覧表示します。 | 
| -xhelp=readme | README ファイルの内容を表示します。 | 
| オプション | 処理 | 
|---|---|
| -H | インクルードされるファイルのパス名を出力します。 | 
| -Ipathname | include ファイル検索パスに pathname を追加します。 | 
| -I- | インクルードファイル検索規則を変更します。 | 
| -xM | メイクファイルの依存情報を出力します。 | 
| -xM1 | 依存情報を生成しますが、/usr/include は除きます。 | 
| オプション | 処理 | 
|---|---|
| -instances=a | テンプレートインスタンスの位置とリンケージを制御します。 | 
| -template=wlst | さまざまなテンプレートオプションを有効または無効にします。 | 
| オプション | 処理 | 
|---|---|
| -mt | マルチスレッド化したコードのコンパイルとリンクを行います。 | 
| -xsafe=mem | (SPARC) メモリーに関するトラップを起こさないものとします。 | 
| -xthreadvar | (SPARC) デフォルトのスレッドローカルな記憶装置へのアクセスモードを変更します。 |