3.4 機能別に見たオプションの要約
このセクションには、参照しやすいように、コンパイラオプションが機能別に分類されています。各オプションの詳細は、C++ コンパイラオプションを参照してください。
オプションは、特に記載がないかぎりすべてのプラットフォームに適用されます。SPARC ベースシステム上の Oracle Solaris OS に特有の機能は (SPARC) として識別され、x86 ベースシステム上の Oracle Solaris OS に特有の機能は (x86) として識別されます。
3.4.1 コード生成オプション
表 4 コード生成オプション
|
|
-compat
|
コンパイラの互換モードを設定します。
|
-g
|
デバッグ用にコンパイルします。
|
-KPIC
|
位置に依存しないコードを生成します。
|
-Kpic
|
位置に依存しないコードを生成します。
|
-mt
|
マルチスレッド化したコードのコンパイルとリンクを行います。
|
-xaddr32
|
コードを 32 ビットアドレス空間に制限します (x86/x64)。
|
-xarch
|
ターゲットアーキテクチャーを指定します。
|
-xcode=a
|
(SPARC) コードのアドレス空間を指定します。
|
-xlinker
|
リンカーオプションを指定します。
|
-xMerge
|
(SPARC) データセグメントとテキストセグメントをマージします。
|
-xtarget
|
ターゲットシステムを指定します。
|
-xmodel
|
64 ビットオブジェクトの形式を x86 プラットフォーム用に変更します。
|
+w
|
意図しない結果が生じる可能性のあるコードを特定します。
|
+w2
|
+w で生成される警告に加え、おそらく問題がなくても、プログラムの移植性を低下させる可能性がある技術的な違反についての警告も生成します。
|
-xregs
|
コンパイラは、一時記憶領域として使用できるレジスタ (一時レジスタ) が多ければ、それだけ高速なコードを生成します。このオプションは、利用できる一時レジスタを増やしますが、必ずしもそれが適切であるとはかぎりません。
|
-xsegment_align
|
ドライバがリンク行で特殊なマップファイルをインクルードします。
|
-z arg
|
リンカーオプション。
|
|
3.4.2 コンパイル時パフォーマンスオプション
表 5 コンパイル時パフォーマンスオプション
|
|
-instlib
|
指定ライブラリにすでに存在しているテンプレートインスタンスの生成を禁止します。
|
-m32|-m64
|
コンパイルされたバイナリオブジェクトのデータ型モデルを指定します。
|
-xinstrument
|
スレッドアナライザで分析するために、プログラムをコンパイルして計測します。
|
-xjobs
|
コンパイラが処理を行うために作成するプロセスの数を設定します。
|
-xpch
|
共通の一連のインクルードファイルを共有するソースファイルを持つアプリケーションのコンパイル時間を短縮できることがあります。
|
-xpchstop
|
-xpch でプリコンパイル済みヘッダーファイルを作成する際に考慮される最後のインクルードファイルを指定します。
|
-xprofile_ircache
|
(SPARC) -xprofile=collect で保存されたコンパイルデータを再使用します。
|
-xprofile_pathmap
|
(SPARC) 1 つのプロファイルディレクトリに存在する複数のプログラムや共有ライブラリをサポートします。
|
|
3.4.3 コンパイル時とリンク時のオプション
次の表は、リンク時とコンパイル時の両方に指定する必要があるオプションを一覧表示します。
表 6 コンパイル時とリンク時のオプション
|
|
–fast
|
実行可能コードの速度を向上させるコンパイルオプションの組み合わせを選択します。
|
-fopenmp
|
-xopenmp=parallel と同等です。
|
–m32|–m64
|
コンパイルされたバイナリオブジェクトのデータ型モデルを指定します。
|
–mt
|
–-D_REENTRANT –-lthread に展開されるマクロオプションです。
|
-std
|
C++ の言語のバージョンと互換性モードを指定します。
|
–xarch
|
命令セットアーキテクチャーを指定します。
|
–xautopar
|
複数プロセッサ用の自動並列化を有効にします。
|
–xhwcprof
|
コンパイラのハードウェアカウンタによるプロファイリングのサポートを有効にします。
|
–xipo
|
内部手続き解析パスを呼び出すことにより、プログラム全体の最適化を実行します。
|
-xipo_build
|
最初の受け渡し時にコンパイラによって最適化せず、リンク時にのみ最適化することによって、コンパイルの時間を短縮します。
|
-xlinker
|
リンカーオプションを指定します
|
–xlinkopt
|
再配置可能なオブジェクトファイルのリンク時の最適化を実行します。
|
–xmemalign
|
(SPARC) メモリーの予想される最大境界整列と境界整列していないデータアクセスの動作を指定します。
|
–xopenmp
|
明示的な並列化のための OpenMP インタフェースをサポートします。これには、ソースコード指令のセット、実行時ライブラリルーチン、環境変数などが含まれます。
|
–xpagesize
|
スタックとヒープの優先ページサイズを設定します。
|
–xpagesize_heap
|
ヒープの優先ページサイズを設定します。
|
–xpagesize_stack
|
スタックの優先ページサイズを設定します。
|
-xpatchpadding
|
各関数を開始する前に、メモリー領域を予約します。
|
–xpg
|
gprof(1) でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。
|
–xprofile
|
プロファイルのデータを収集、または最適化のためにプロファイルを使用します。
|
-xs
|
(Solaris) オブジェクトファイルのデバッグ情報を実行可能ファイルにリンクします。
|
–xvector=lib
|
ベクトルライブラリ関数の呼び出しの自動生成を有効にします。
|
|
3.4.4 デバッグオプション
表 7 デバッグオプション
|
|
-###
|
-dryrun と同等です
|
+d
|
C++ インライン関数を展開しません。
|
-dryrun
|
コンパイルするすべてのコンポーネントに対してドライバが発行するすべてのコマンドを表示します。
|
-E
|
C++ ソースファイルにプリプロセッサのみを実行し、結果を stdout に送信します。コンパイルはしません。
|
-g
|
デバッグ用にコンパイルします。
|
-g0
|
デバッグ用にコンパイルしますが、インライン機能は無効にしません。
|
-H
|
インクルードされるファイルのパス名を出力します。
|
-keeptmp
|
コンパイル中に作成されたすべての一時ファイルを残します。
|
-P
|
ソースの前処理だけを行い、.i ファイルに出力します。
|
-preserve_argvalues
|
(x86) レジスタベースの関数の引数のコピーをスタックに保存します。
|
-Qoption
|
オプションをコンパイル中の各処理に直接渡します。
|
-s
|
実行可能ファイルからシンボルテーブルを取り除きます。
|
-temp
|
一時ファイルのディレクトリを定義します。
|
-verbose
|
コンパイラの冗長性を制御します。
|
-xanalyze
|
コードアナライザを使用して表示できるソースコードの静的分析を生成します。
|
-xcheck
|
スタックオーバーフローの実行時検査を追加します。
|
-xdebuginfo
|
発行するデバッグの詳細の量を指定して、デバッガで使用するためにコンパイルします。
|
-xdumpmacros
|
定義内容、定義および解除された位置、使用されている場所に関する情報を出力します。
|
-xe
|
構文と意味のエラーのチェックだけを行います。
|
-xglobalize
|
ファイルの静的変数のグローバル化を制御します (関数は制御しません)。
|
-xhelp=flags
|
コンパイラオプションのサマリーを一覧表示します。
|
-xkeep_unref
|
参照されない関数および変数の定義を維持します。
|
-xpatchpadding
|
各関数を開始する前に、メモリー領域を予約します。
|
-xprevise
|
コードアナライザを使用して表示できるソースコードの静的分析を生成します。
|
-xport64
|
32 ビットアーキテクチャーから 64 ビットアーキテクチャーへの移植中の一般障害について警告します。
|
-xs
|
(Solaris) オブジェクトファイルのデバッグ情報を実行可能ファイルにリンクします。
|
|
3.4.5 浮動小数点オプション
表 8 浮動小数点オプション
|
|
-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 値を返します。
|
|
3.4.6 言語オプション
表 9 言語オプション
|
|
-compat
|
コンパイラの主要リリースとの互換モードを設定します。
|
-features=alst
|
C++ の各機能を有効化または無効化します。
|
-std
|
C++ の言語バージョンを指定します。
|
-xchar
|
文字型が符号なしと定義されているシステムからのコードの移行を容易に行えるようにします。
|
-xldscope
|
共有ライブラリをより速くより安全に作成するため、変数と関数の定義のデフォルトリンカースコープを制御します。
|
-xthreadvar
|
(SPARC) デフォルトのスレッドローカルな記憶装置へのアクセスモードを変更します。
|
-xtrigraphs
|
文字表記シーケンスを認識します。
|
-xustr
|
16 ビット文字で構成された文字リテラルを認識します。
|
|
3.4.7 ライブラリオプション
表 10 ライブラリオプション
|
|
-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
|
数学ルーチンのライブラリを使用しません。
|
|
3.4.8 廃止オプション
注 -
次のオプションは、現在は廃止されているためにコンパイラに受け入れられないか、将来のリリースではおそらく削除されます。
表 11 廃止オプション
|
|
-features=[%all|%none]
|
%all と %none は廃止されたサブオプションです。
|
-library=%all
|
将来のリリースでおそらく削除される廃止されたサブオプションです。
|
-migration
|
このオプションは認識されなくなりました。
|
-xanalyze
|
廃止。代わりに -previse を使用してください。
|
-xarch=v7,v8,v8a
|
廃止。
|
-xlic_lib=sunperf
|
Sun Performance Library にリンクするには、—library=sunperf を使用します。
|
-xlicinfo
|
非推奨。
|
-xnativeconnect
|
廃止。これに代わるオプションはありません。
|
-xprefetch=yes
|
代わりに - xprefetch=auto,explicit を使用します。
|
-xprefetch=no
|
代わりに -xprefetch=no%auto,no%explicit を使用します。
|
–xvector=yes
|
代わりに、–-xvector=lib を使用します。
|
–xvector=no
|
代わりに、–xvector=none を使用します。
|
|
3.4.9 出力オプション
表 12 出力オプション
|
|
-c
|
コンパイルのみ。オブジェクト (.o) ファイルを作成しますが、リンクはしません。
|
-dryrun
|
ドライバによって発行されるすべてのコマンド行を表示しますが、それらのいずれも実行しません。
|
-E
|
C++ ソースファイルにプリプロセッサのみを実行し、結果を stdout に送信します。コンパイルはしません。
|
-erroff
|
コンパイラの警告メッセージを抑止します。
|
-errtags
|
各警告メッセージのメッセージタグを表示します。
|
-errwarn
|
指定の警告メッセージが出力されると、コンパイラはエラーステータスで終了します。
|
-filt
|
コンパイラがリンカーエラーメッセージに適用するフィルタリングを抑止します。
|
–G
|
実行可能ファイルではなく動的共有ライブラリを構築します。
|
–H
|
インクルードされるファイルのパス名を出力します。
|
-o filename
|
出力ファイルや実行可能ファイルの名前を filename にします。
|
–P
|
ソースの前処理だけを行い、.i ファイルに出力します。
|
–Qproduce sourcetype
|
CC ドライバに sourcetype (ソースタイプ) 型のソースコードを生成するよう指示します。
|
–s
|
実行可能ファイルからシンボルテーブルを取り除きます。
|
–verbose=vlst
|
コンパイラの冗長性を制御します。
|
+w
|
必要に応じて追加の警告を出力します。
|
+w2
|
該当する場合は、より多くの警告を出力します。
|
–w
|
警告メッセージを抑止します。
|
-xdumpmacros
|
定義内容、定義および解除された位置、使用されている場所に関する情報を出力します。
|
-xe
|
ソースファイルの構文と意味のチェックだけを行い、オブジェクトや実行可能コードは生成しません。
|
–xhelp=flags
|
コンパイラオプションのサマリーを一覧表示します。
|
–xM
|
メイクファイルの依存情報を出力します。
|
–xM1
|
依存情報を生成しますが、/usr/include は除きます。
|
–xtime
|
コンパイル処理ごとの実行時間を報告します。
|
–xwe
|
すべての警告をエラーに変換します。
|
-z arg
|
リンカーオプション。
|
|
3.4.10 実行時パフォーマンスオプション
表 13 実行時パフォーマンスオプション
|
|
–fast
|
一部のプログラムで最適な実行速度が得られるコンパイルオプションの組み合わせを選択します。
|
-fma
|
浮動小数点の積和演算命令の自動生成を有効にします。
|
-g
|
パフォーマンスの解析 (およびデバッグ) に備えてプログラムを用意するようにコンパイラとリンカーの両方に指示します。
|
-s
|
実行可能ファイルからシンボルテーブルを取り除きます。
|
-m32|-m64
|
コンパイルされたバイナリオブジェクトのデータ型モデルを指定します。
|
-xalias_level
|
コンパイラで、型に基づく別名の解析および最適化を実行するように指定します。
|
-xarch=isa
|
ターゲットのアーキテクチャー命令セットを指定します。
|
-xbinopt
|
あとで最適化、変換、分析を行うために、バイナリを準備します。
|
-xbuiltin[=opt]
|
標準ライブラリ呼び出しの最適化を有効または無効にします。
|
-xcache=c
|
(SPARC) オプティマイザのターゲットキャッシュプロパティーを定義します。
|
-xchip=c
|
ターゲットのプロセッサチップを指定します。
|
-xdebuginfo
|
パフォーマンスの解析 (およびデバッグ) に備えてプログラムを用意するようにコンパイラとリンカーの両方に指示します。
|
-xF
|
リンカーによる関数と変数の順序変更を有効にします。
|
-xinline=flst
|
どのユーザーが作成したルーチンをオプティマイザでインライン化するかを指定します。
|
-xinline_param
|
コンパイラが関数呼び出しをインライン化するタイミングを判断するために使用するヒューリスティックを手動で変更します。
|
-xinline_report
|
コンパイラによる関数のインライン化に関する報告を生成し、標準出力に書き込みます。
|
-xipo
|
内部手続きの最適化を実行します。
|
-xipo_build
|
最初の受け渡し時にコンパイラによって最適化せず、リンク時にのみ最適化することによって、コンパイルの時間を短縮します。
|
-xlibmil
|
最適化のために、選択された libm ライブラリルーチンをインライン展開します。
|
-xlibmopt
|
最適化された数学ルーチンライブラリを使用します。
|
-xlinkopt
|
オブジェクトファイル内のあらゆる最適化のほかに、結果として出力される実行可能ファイルや動的ライブラリのリンク時最適化も行います。
|
-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) メモリーに関するトラップを起こさないものとします。
|
-xsegment_align
|
ドライバがリンク行で特殊なマップファイルをインクルードします。
|
-xspace
|
(SPARC) コードサイズが大きくなるような最適化は行いません。
|
-xtarget=t
|
ターゲットの命令セットと最適化のシステムを指定します。
|
-xthreadvar
|
デフォルトのスレッドローカル記憶装置アクセスモードを変更します。
|
-xthroughput
|
システム上で多数のプロセスが同時に実行されている状況でアプリケーションが実行されることを指定します。
|
-xunboundsym
|
動的に結合されているシンボルへの参照がプログラムに含まれているかどうかを指定します。
|
-xunroll=n
|
可能な場合は、ループを展開します。
|
-xvis
|
(SPARC) VIS 命令セットに定義されているアセンブリ言語テンプレートをコンパイラが認識します。
|
|
3.4.11 プリプロセッサオプション
表 14 プリプロセッサオプション
|
|
-Dname[=def]
|
シンボル name をプリプロセッサに定義します。
|
-E
|
C++ ソースファイルにプリプロセッサのみを実行し、結果を stdout に送信します。前処理された行のソースに関する情報をインクルードします。コンパイルはしません。
|
-H
|
インクルードされるファイルのパス名を出力します。
|
-P
|
ソースの前処理だけを行い、.i ファイルに出力します。
|
-Uname
|
プリプロセッサシンボル name の初期定義を削除します。
|
-xM
|
メイクファイルの依存情報を出力します。
|
-xM1
|
依存情報を生成しますが、/usr/include は除きます。
|
|
3.4.12 プロファイリングオプション
表 15 プロファイリングオプション
|
|
-p
|
prof でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。
|
-xpg
|
gprof プロファイラによるプロファイル処理用にコンパイルします。
|
-xprofile
|
実行時プロファイルデータを使って収集または最適化を実行します。
|
|
3.4.13 リファレンスオプション
表 16 リファレンスオプション
|
|
-xhelp=flags
|
コンパイラオプションのサマリーを一覧表示します。
|
|
3.4.14 ソースオプション
表 17 ソースオプション
|
|
-H
|
インクルードされるファイルのパス名を出力します。
|
-Ipathname
|
include ファイル検索パスに pathname を追加します。
|
-I-
|
インクルードファイル検索規則を変更します。
|
-xM
|
メイクファイルの依存情報を出力します。
|
-xM1
|
依存情報を生成しますが、/usr/include は除きます。
|
|
3.4.15 テンプレートオプション
表 18 テンプレートオプション
|
|
-instances=a
|
テンプレートインスタンスの位置とリンケージを制御します。
|
-template=wlst
|
さまざまなテンプレートオプションを有効または無効にします。
|
|
3.4.16 スレッドオプション
表 19 スレッドオプション
|
|
-mt
|
マルチスレッド化したコードのコンパイルとリンクを行います。
|
-xsafe=mem
|
(SPARC) メモリーに関するトラップを起こさないものとします。
|
-xthreadvar
|
(SPARC) デフォルトのスレッドローカルな記憶装置へのアクセスモードを変更します。
|
|