Sun Studio 12 Update 1: C++ ユーザーズガイド

3.3 機能別に見たオプションの要約

この節には、参照しやすいように、コンパイラオプションが機能別に分類されています。各オプションの詳細は、付録 A C++ コンパイラオプションを参照してください。

これらのオプションは、特に記載がないかぎりすべてのプラットフォームに適用されます。Solaris SPARC システム版のオペレーティングシステムに特有の機能は SPARC として表記され、x86 システム版のオペレーティングシステムに特有の機能は x86 として表記されます。

3.3.1 コード生成オプション

表 3–2 コード生成オプション

オプション 

処理  

-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

リンカーオプション 

3.3.2 コンパイル時パフォーマンスオプション

表 3–3 コンパイル時パフォーマンスオプション

オプション 

処理  

-instlib

指定ライブラリにすでに存在しているテンプレートインスタンスの生成を禁止します。 

-m32|-m64

コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 

-xinstrument

スレッドアナライザで分析するために、プログラムをコンパイルして計測します。 

-xjobs

コンパイラが処理を行うために作成するプロセスの数を設定します。 

-xpch

共通の一連のインクルードファイル群を共有するソースファイルを持つアプリケーションのコンパイル時間を短縮できます。 

-xpchstop

-xpch でプリコンパイル済みヘッダーファイルを作成する際に適用される、最後のインクルードファイルを指定します。

-xprofile_ircache

(SPARC) -xprofile=collect で保存されたコンパイルデータを再使用します。

-xprofile_pathmap

(SPARC) 1 つのプロファイルディレクトリに存在する複数のプログラムや共有ライブラリをサポートします。 

3.3.3 コンパイル時とリンク時のオプション

次の表は、リンク時とコンパイル時の両方に指定する必要があるオプションをまとめています。

表 3–4 コンパイル時とリンク時のオプション

オプション  

処理  

-fast

実行可能コードの速度を向上させるコンパイルオプションの組み合わせを選択します。

-m32|-m64

コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 

-mt

マクロオプションです。

-xarch

命令セットアーキテクチャーを指定します。

-xautopar

複数プロセッサ用の自動並列化を有効にします。

-xhwcprof

(SPARC) コンパイラのハードウェアカウンタによるプロファイリングのサポートを有効にします。

-xipo

内部手続き解析パスを呼び出すことにより、プログラム全体の最適化を実行します。

-xlinkopt

再配置可能なオブジェクトファイルのリンク時の最適化を実行します。

-xmemalign

(SPARC) 想定するメモリー境界整列の最大値と、境界整列に失敗したデータがアクセスされた際の動作を指定します。

-xopenmp

明示的な並列化のための OpenMP インタフェースをサポートする。このインタフェースには、ソースコード指令セット、実行時ライブラリルーチン、環境変数などが含まれます。

-xpagesize

スタックとヒープ用の優先ページサイズを設定します。

-xpagesize_heap

ヒープ用の優先ページサイズを設定します。

-xpagesize_stack

ヒープ用の優先ページサイズを設定します。

-xpg

gprof(1) によるプロファイルの準備として、データを収集するためのオブジェクトコードを生成します。

-xprofile

プロファイルのデータを収集、または最適化のためにプロファイルを使用します。

-xvector

ベクトルライブラリ関数を自動的に呼び出すようにします。

3.3.4 デバッグオプション

表 3–5 デバッグオプション

オプション  

処理  

+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 ビットアーキテクチャーへの移植中の一般障害について警告します。 

3.3.5 浮動小数点オプション

表 3–6 浮動小数点オプション

オプション 

処理 

-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 値を返します。

3.3.6 言語オプション

表 3–7 言語オプション

オプション 

処理 

-compat

コンパイラの主要リリースとの互換モードを設定します。 

-features=alst

C++ の各機能を有効化または無効化します。 

-xchar

文字型が符号なしと定義されているシステムからのコードの移行を容易に行えるようにします。 

-xldscope

共有ライブラリをより速くより安全に作成するため、変数と関数の定義のデフォルトリンカースコープを制御します。 

-xthreadvar

(SPARC) デフォルトのスレッドローカルな記憶装置へのアクセスモードを変更します。 

-xtrigraphs

文字表記シーケンスを認識します。 

-xustr

16 ビット文字で構成された文字リテラルを認識します。 

3.3.7 ライブラリオプション

表 3–8 ライブラリオプション

オプション 

処理 

-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.3.8 廃止オプション


注 –

次のオプションは、現在は廃止されているためにコンパイラに受け入れられないか、将来のリリースでは削除されます。


表 3–9 廃止オプション

オプション 

処理  

-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 を使用します。

3.3.9 出力オプション

表 3–10 出力オプション

オプション 

処理 

-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

リンカーオプション。

3.3.10 実行時パフォーマンスオプション

表 3–11 実行時パフォーマンスオプション

オプション 

処理  

-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) VISTM 命令セットに定義されているアセンブリ言語テンプレートをコンパイラが認識します。

3.3.11 プリプロセッサオプション

表 3–12 プリプロセッサオプション

オプション 

処理 

-Dname[=def]

シンボル name をプリプロセッサに定義します。

-E

C++ ソースファイルにプリプロセッサを実行し、結果を stdout に出力しますが、コンパイルはしません。

-H

インクルードされるファイルのパス名を出力します。 

-P

ソースの前処理だけを行い、.i ファイルに出力します。

-Uname

プリプロセッサシンボル name の初期定義を削除します。

-xM

メイクファイルの依存情報を出力します。 

-xM1

依存情報を生成しますが、/usr/include は除きます。

3.3.12 プロファイルオプション

表 3–13 プロファイルオプション

オプション 

処理 

-p

prof でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。

-xa

プロファイル用のコードを生成します。 

-xpg

gprof プロファイラによるプロファイル処理用にコンパイルします。

-xprofile

実行時プロファイルデータを収集したり、このデータを使って最適化します。 

3.3.13 リファレンスオプション

表 3–14 リファレンスオプション

オプション 

処理 

-migration

以前のコンパイラからの移行に関する情報の参照先を表示します。 

-xhelp=flags

コンパイラオプションの要約を一覧表示します。 

-xhelp=readme

README ファイルの内容を表示します。

3.3.14 ソースオプション

表 3–15 ソースオプション

オプション 

処理 

-H

インクルードされるファイルのパス名を出力します。 

-Ipathname

include ファイル検索パスに pathname を追加します。

-I-

インクルードファイル検索規則を変更します。 

-xM

メイクファイルの依存情報を出力します。 

-xM1

依存情報を生成しますが、/usr/include は除きます。

3.3.15 テンプレートオプション

表 3–16 テンプレートオプション

オプション 

処理 

-instances=a

テンプレートインスタンスの位置とリンケージを制御します。 

-template=wlst

さまざまなテンプレートオプションを有効または無効にします。 

3.3.16 スレッドオプション

表 3–17 スレッドオプション

オプション  

処理  

-mt

マルチスレッド化したコードのコンパイルとリンクを行います。 

-xsafe=mem

(SPARC) メモリーに関するトラップを起こさないものとします。 

-xthreadvar

(SPARC) デフォルトのスレッドローカルな記憶装置へのアクセスモードを変更します。