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

ドキュメントの情報

はじめに

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

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

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

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

3.1 構文の概要

3.2 一般的な注意事項

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

3.3.1 コード生成オプション

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

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

3.3.4 デバッグオプション

3.3.5 浮動小数点オプション

3.3.6 言語オプション

3.3.7 ライブラリオプション

3.3.8 廃止オプション

3.3.9 出力オプション

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

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

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

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

3.3.14 ソースオプション

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

3.3.16 スレッドオプション

3.4 ユーザー指定のデフォルトオプションファイル

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

4.  言語拡張

5.  プログラムの編成

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

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

8.  例外処理

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

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

パート III ライブラリ

11.  ライブラリの使用

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

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

14.  ライブラリの構築

パート IV 付録

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

B.  プラグマ

用語集

索引

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

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

オプションは、特に記載がないかぎりすべてのプラットフォームに適用されます。SPARC ベースシステム上の Oracle Solaris OS に特有の機能は SPARC、x86 ベースシステム上の Oracle Solaris OS に特有の機能は x86 として識別されます。

3.3.1 コード生成オプション

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

オプション
処理
-compat
コンパイラの主要リリースとの互換モードを設定します。
-g
デバッグ用にコンパイルします。
-KPIC
位置に依存しないコードを生成します。
-Kpic
位置に依存しないコードを生成します。
-mt
マルチスレッド化したコードのコンパイルとリンクを行います。
-xaddr32
コードを 32 ビットアドレス空間に制限します (x86/x64)。
-xarch
ターゲットアーキテクチャーを指定します。
-xcode=a
(SPARC) コードのアドレス空間を指定します。
-xlinker
リンカーオプションを指定します。
-xMerge
(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
--D_REENTRANT --lthread に展開されるマクロオプションです。
-xarch
命令セットアーキテクチャーを指定します。
-xautopar
複数プロセッサ用の自動並列化を有効にします。
-xhwcprof
(SPARC) コンパイラのハードウェアカウンタによるプロファイリングのサポートを有効にします。
-xipo
内部手続き解析パスを呼び出すことにより、プログラム全体の最適化を実行します。
-xlinker
リンカーオプションを指定します
-xlinkopt
再配置可能なオブジェクトファイルのリンク時の最適化を実行します。
-xmemalign
(SPARC) メモリーの予想される最大境界整列と境界整列していないデータアクセスの動作を指定します。
-xopenmp
明示的な並列化のための OpenMP インタフェースをサポートします。これには、ソースコード指令のセット、実行時ライブラリルーチン、環境変数などが含まれます。
-xpagesize
スタックとヒープの優先ページサイズを設定します。
-xpagesize_heap
ヒープの優先ページサイズを設定します。
-xpagesize_stack
スタックの優先ページサイズを設定します。
-xpg
gprof(1) でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。
-xprofile
プロファイルのデータを収集、または最適化のためにプロファイルを使用します。
-xvector=lib
ベクトルライブラリ関数の呼び出しの自動生成を有効にします。

3.3.4 デバッグオプション

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

オプション
処理
-###
-dryrun と同等です
+d
C++ インライン関数を展開しません。
-dryrun
コンパイルするすべてのコンポーネントに対してドライバが発行するすべてのコマンドを表示します。
-E
C++ ソースファイルにプリプロセッサのみを実行し、結果を stdout に送信します。コンパイルはしません。
-g
デバッグ用にコンパイルします。
-g0
デバッグ用にコンパイルしますが、インライン機能は無効にしません。
-H
インクルードされるファイルのパス名を出力します。
-keeptmp
コンパイル中に作成されたすべての一時ファイルを残します。
-P
ソースの前処理だけを行い、.i ファイルに出力します。
-Qoption
オプションをコンパイル中の各処理に直接渡します。
-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 廃止オプション

オプション
処理
-features=[%all|%none]
%all%none は廃止されたサブオプションです。
-library=%all
将来のリリースでおそらく削除される廃止されたサブオプションです。
-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.3.9 出力オプション

表 3-10 出力オプション

オプション
処理
-c
コンパイルのみ。オブジェクト (.o) ファイルを作成しますが、リンクはしません。
-dryrun
ドライバからコンパイラに対して発行されたコマンド行を表示しますが、コンパイルを行いません。
-E
C++ ソースファイルにプリプロセッサのみを実行し、結果を stdout に送信します。コンパイルはしません。
-erroff
コンパイラの警告メッセージを抑止します。
-errtags
各警告メッセージのメッセージタグを表示します。
-errwarn
指定の警告メッセージが出力されると、コンパイラはエラーステータスで終了します。
-filt
コンパイラがリンカーエラーメッセージに適用するフィルタリングを抑止します。
–G
実行可能ファイルではなく動的共有ライブラリを構築します。
–H
インクルードされるファイルのパス名を出力します。
–migration
以前のコンパイラからの移行に関する情報の参照先を表示します。
-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.3.10 実行時パフォーマンスオプション

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

オプション
処理
-fast
一部のプログラムで最適な実行速度が得られるコンパイルオプションの組み合わせを選択します。
-fma
(SPARC) 浮動小数点の積和演算 (FMA) 命令の自動生成を有 効にします。
-g
パフォーマンスの解析 (およびデバッグ) に備えてプログラムを用意するようにコンパイラとリンカーの両方に指示します。
-s
実行可能ファイルからシンボルテーブルを取り除きます。
-m32|-m64
コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。
-xalias_level
コンパイラで、型に基づく別名の解析および最適化を実行するように指定します。
-xarch=isa
ターゲットのアーキテクチャー命令セットを指定します。
-xbinopt
あとで最適化、変換、分析を行うために、バイナリを準備します。
-xbuiltin[=opt]
標準ライブラリ呼び出しの最適化を有効または無効にします。
-xcache=c
(SPARC) オプティマイザのターゲットキャッシュプロパティーを定義します。
-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 命令セットに定義されているアセンブリ言語テンプレートをコンパイラが認識します。

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 でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。
-xpg
gprof プロファイラによるプロファイル処理用にコンパイルします。
-xprofile
実行時プロファイルデータを使って収集または最適化を実行します。

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

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

オプション
処理
-xhelp=flags
コンパイラオプションの要約を一覧表示します。

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) デフォルトのスレッドローカルな記憶装置へのアクセスモードを変更します。