A.1 機能別に見たオプションの要約
この節には、参照しやすいように、コンパイラオプションが機能別に分類されています。各オプションの詳細は、付録 B C コンパイラオプションリファレンスを参照してください。フラグによっては、複数の使用目的があるため、複数の個所に記載されているものがあります。
特に明記しないかぎり、オプションはすべてのプラットフォームに適用されます。SPARC ベースシステムに固有の機能は (SPARC) として識別し、x86/x64 ベースシステムに固有の機能は (x86) として識別しています。Oracle Solaris プラットフォームのみに適用されるオプションには、(Solaris) というマークが付きます。Linux プラットフォームのみを対象とするオプションには、(Linux) というマークが付きます。
A.1.1 最適化とパフォーマンスのオプション
表 A-1 最適化とパフォーマンスのオプション
|
|
-fast |
実行可能コードの速度を向上させるコンパイルオプションの組み合わせを選択します。 |
-fma |
(SPARC) 浮動小数点の積和演算 (FMA) 命令の自動生成を有 効にします。 |
-library=sunperf |
Sun Performance Library とリンクします |
-p |
プロファイル用のデータを収集するためにオブジェクトコードを準備します |
-xalias_level |
コンパイラで、型に基づく別名の解析および最適化を実行するように指定します。 |
-xannotate |
(Solaris) 最適化および監視ツール binopt(1)、code-analyzer(1)、discover(1)、collect(1)、および uncover(1) で使用可能なバイナリを作成するよう、コンパイラに指示します |
-xbinopt |
あとで最適化、変換、分析を行うために、バイナリを準備します。 |
-xbuiltin |
標準ライブラリ関数を呼び出すコードの最適化を改善します。 |
-xdepend |
ループの繰り返し内部でのデータ依存性の解析およびループ再構成を実行します。 |
-xF |
リンカーによるデータおよび関数の順序変更を有効にします。 |
-xhwcprof |
(SPARC)
コンパイラのハードウェアカウンタによるプロファイリングのサポートを有効にします。 |
-xinline |
指定された関数のみのインライン化を試みます。 |
-xinstrument |
スレッドアナライザで分析するために、プログラムをコンパイルして計測します。 |
-xipo |
内部手続き解析パスを呼び出すことにより、プログラム全体の最適化を実行します。 |
-xipo_archive |
クロスファイル最適化でアーカイブ ( .a ) ライブラリを取り込むことを許可します。 |
-xkeepframe |
指定した関数のスタック関連の最適化を禁止します |
-xjobs |
コンパイラが作成するプロセスの数を設定します。 |
-xlibmil |
実行速度を上げるために一部のライブラリルーチンをインライン化します。 |
-xlic_lib=sunperf |
廃止。Sun Performance Library にリンクするには、—library=sunperf を使用します。 |
-xlinkopt |
再配置可能なオブジェクトファイルのリンク時の最適化を実行します。 |
-xlibmopt |
最適化された数学ルーチンのライブラリを有効にします。 |
-xmaxopt |
pragma opt のレベルを指定されたレベルに制限します。 |
-xnolibmil |
数学ライブラリルーチンをインライン化しません。 |
-xnolibmopt |
最適化された数学ルーチンのライブラリを有効化しません。 |
-xO |
オブジェクトコードを最適化します。 |
-xnorunpath |
実行可能ファイル内の共有ライブラリの実行時検索パスのインクルードを抑止します。 |
-xpagesize |
スタックとヒープの優先ページサイズを設定します。 |
-xpagesize_stack |
スタックの優先ページサイズを設定します。 |
-xpagesize_heap |
ヒープの優先ページサイズを設定します。 |
-xpch |
共通の一連のインクルードファイル群を共有するソースファイルを持つアプリケーションのコンパイル時間を短縮します。 |
-xpec |
追加のチューニングやトラブルシューティングで使用できる移植可能な実行可能コード(Portable
Executable Code、PEC) バイナリを生成します。 |
-xpchstop |
活性文字列の最後のインクルードファイルを指定するために、-xpch と組み合わせて使用できます。 |
-xprefetch |
先読み命令を有効にします。 |
-xprefetch_level |
-xprefetch=auto を設定したときの先読み命令の自動挿入を制御します。 |
-xprefetch_auto_type |
間接先読みの生成方法を制御します。 |
-xprofile |
プロファイルのデータを収集、または最適化のためにプロファイルを使用します。 |
-xprofile_ircache |
-xprofile=collect 段階から保存されたコンパイルデータを再利用することで、-xprofile=use 段階のコンパイル時間を改善します |
-xprofile_pathmap |
1 つのプロファイルディレクトリ内で複数のプログラムや共有ライブラリをサポートします。 |
-xrestrict |
ポインタ値の関数パラメータを制限付きのポインタとして扱います。 |
-xsafe |
(SPARC) コンパイラがメモリーベースのトラップが起こらないと仮定するのを許可します。 |
-xspace |
コードサイズを増やすループの最適化または並列化を行いません。 |
-xunroll |
ループを n 回展開するようにオプティマイザに示唆します。 |
|
A.1.2 コンパイル時とリンク時のオプション
次の表は、リンク時とコンパイル時の両方に指定する必要があるオプションをまとめています。
表 A-2 コンパイル時とリンク時のオプション
|
|
-fast |
実行可能コードの速度を向上させるコンパイルオプションの組み合わせを選択します。 |
-m32 | -m64 |
コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 |
-mt |
-D_REENTRANT -lthread に展開されるマクロオプションです。 |
-p |
prof(1) を使用してプロファイル用のデータを収集するように、オブジェクトコードを準備します。 |
-xarch |
命令セットアーキテクチャーを指定します。 |
-xautopar |
複数プロセッサのための自動並列化を有効にします。 |
-xhwcprof |
(SPARC) コンパイラのハードウェアカウンタによるプロファイリングのサポートを有効にします。 |
-xipo |
内部手続き解析パスを呼び出すことにより、プログラム全体の最適化を実行します。 |
-xlinkopt |
再配置可能なオブジェクトファイルのリンク時の最適化を実行します。 |
-xmemalign |
(SPARC) メモリーの予想される最大境界整列と境界整列していないデータアクセスの動作を指定します。 |
-xopenmp |
明示的な並列化のための OpenMP インタフェースをサポートします。このインタフェースには、ソースコード指令セット、実行時ライブラリルーチン、環境変数などが含まれます。 |
-xpagesize |
スタックとヒープの優先ページサイズを設定します。 |
-xpagesize_stack |
スタックの優先ページサイズを設定します。 |
-xpagesize_heap |
ヒープの優先ページサイズを設定します。 |
-xpg |
gprof(1) でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。 |
-xprofile |
プロファイルのデータを収集、または最適化のためにプロファイルを使用します。 |
-xvector=lib |
ベクトルライブラリ関数を自動呼び出しします。 |
|
A.1.3 データ境界整列のオプション
表 A-3 データ境界整列のオプション
|
|
-xchar_byte_order |
複数文字からなる文字定数の文字を指定されたバイト順序で配置することにより、整数定数を生成します。 |
-xdepend |
ループの繰り返し内部でのデータ依存性の解析およびループ再構成を実行します。 |
-xmemalign |
(SPARC) メモリーの予想される最大境界整列と境界整列していないデータアクセスの動作を指定します。 |
-xopenmp |
明示的な並列化のための OpenMP インタフェースをサポートします。このインタフェースには、ソースコード指令セット、実行時ライブラリルーチン、環境変数などが含まれます。 |
|
A.1.4 数値と浮動小数点のオプション
表 A-4 数値と浮動小数点のオプション
|
|
-flteval |
(x86) 浮動小数点の評価を制御します。 |
-fma |
(SPARC) 浮動小数点の積和演算 (FMA) 命令の自動生成を有 効にします。 |
-fnonstd |
浮動小数点演算ハードウェアの標準以外の初期化を行います。 |
-fns |
標準以外の浮動小数点モードをオンにします。 |
-fprecision |
(x86)
浮動小数点制御ワードの丸め精度モードのビットを初期化します |
-fround |
プログラム初期化中に実行時に確立される IEEE 754 丸めモードを設定します。 |
-fsimple |
オプティマイザが浮動小数点演算に関する単純化した仮定を行うことを許可します。 |
-fsingle |
コンパイラが float 式を倍精度ではなく単精度で評価します。 |
-fstore |
(x86) コンパイラが浮動小数点の式または関数の値を代入の左辺の型に変換します。 |
-ftrap |
起動時に IEEE 754 トラップモードを有効に設定します。 |
-nofstore |
(x86) 浮動小数点の式または関数の値を代入の左辺の型に変換しません。 |
-xdepend |
ループの繰り返し内部でのデータ依存性の解析およびループ再構成を実行します。 |
-xlibmieee |
例外時の数学ルーチンの戻り値を強制的に IEEE
754 形式にします。 |
-xsfpconst |
接尾辞のない浮動小数点定数を単精度で表します |
-xvector |
ベクトルライブラリ関数を自動呼び出しします。 |
|
A.1.5 並列化のオプション
表 A-5 並列化のオプション
|
|
-mt |
-D_REENTRANT -lthread に展開されるマクロオプションです。 |
-xautopar |
複数のプロセッサに対して自動並列化を有効にします。 |
-xcheck |
スタックオーバーフローの実行時検査を追加し、局所変数を初期化します。 |
-xdepend |
ループの繰り返し内部でのデータ依存性の解析およびループ再構成を実行します。 |
-xloopinfo |
並列化されているループとされていないループを示します。 |
-xopenmp |
明示的な並列化のための OpenMP インタフェースをサポートします。このインタフェースには、ソースコード指令セット、実行時ライブラリルーチン、環境変数などが含まれます。 |
-xreduction |
自動並列化中の縮約の認識を有効にします。 |
-xrestrict |
ポインタ値の関数パラメータを制限付きのポインタとして扱います。 |
-xvpara |
#pragma MP 指令が指定されているが、並列化用に正しく指定されていない可能性のあるループについて、警告します。 |
-xthreadvar |
スレッドローカルな変数の実装を制御します。 |
-Zll |
lock_lint 用のプログラムデータベースは作成しますが、実行可能なコードは生成しません。 |
|
A.1.6 ソースコードのオプション
表 A-6 ソースコードのオプション
|
|
-A |
まるで
#assert 前処理指令が実行されたかのように、name を述語として、指定された tokens に関連付けます。 |
-C |
前処理指令の行のものを除いて、プリプロセッサがコメントを削除することを抑止します。 |
-D |
まるで #define 前処理指令が実行されたかのように、name を指定された tokens に関連付けます。 |
-E |
ソースファイルに対してプリプロセッサのみを実行し、その出力を stdout に送ります。 |
-fd |
K&R
形式の関数の定義や宣言について報告します。 |
-H |
現在のコンパイル中にインクルードされた各ファイルのパス名を、標準エラーに 1 行に 1 つずつ出力します。 |
-I |
#include ファイルが相対ファイル名で検索されるリストに、ディレクトリを追加します。 |
-include |
コンパイラが引数 filename を、まるでそれが主ソースファイルの先頭行に#include プリプロセッサ指令として存在しているかのように処理します。 |
-P |
ソースファイルに対して C
プリプロセッサのみを実行します。 |
-U |
プリプロセッサシンボル name の初期定義をすべて削除します。 |
-X |
-X オプションは ISO C 規格に準拠する度合いを指定します。 |
-xCC |
C++ 形式のコメントを受け入れます。 |
-xc99 |
サポートされる C99 機能のコンパイラ認識を制御します。 |
-xchar |
char が符号なしとして定義されているシステムからの移行を支援します。 |
-xcsi |
C コンパイラが、ISO
C ソース文字コード要件に準拠していないロケールで記述されたソースコードを受け入れることを許可します |
-xM |
指定された C プログラムに対してプリプロセッサのみを実行し、メイクファイル依存関係を生成して結果を標準出力に送信することを要求します。 |
-xM1 |
-xM と同様に依存関係を収集しますが、/usr/include ファイルは除外します。 |
-xMD |
-xM と同様にメイクファイルの依存関係を生成しますが、コンパイルを含みます。 |
-xMF |
メイクファイルの依存関係情報を保存するファイル名を指定します。 |
-xMMD |
メイクファイル依存関係を生成しますが、システムヘッダーは除外します。 |
-xP |
このモジュール内に定義されたすべての K&R C 関数のプロトタイプを出力します |
-xpg |
gprof(1) でプロファイル処理するためのデータを収集するオブジェクトコードを用意します。 |
-xtrigraphs |
3
文字表記シーケンスの認識を決定します。 |
-xustr |
16 ビット文字で構成された文字リテラルを認識します。 |
|
A.1.7 コンパイル済みコードのオプション
表 A-7 コンパイル済みコードのオプション
|
|
-c |
ld(1) によるリンクを抑制し、ソースファイルごとに .o ファイルを現在の作業ディレクトリ内に生成するよう、コンパイラに指示します |
-o |
出力ファイルに名前を付けます |
-S |
アセンブリソースファイルは生成するがプログラムのアセンブルは行わないように、コンパイラに指示します。 |
|
A.1.8 コンパイルモードのオプション
表 A-8 コンパイルモードのオプション
|
|
-# |
冗長モードを有効にします。この場合、コマンドオプションの展開方法が表示されるほか、呼び出された各コンポーネントも表示されます。 |
-### |
呼び出される各コンポーネントを表示しますが、それらのコンポーネントは実際には実行しません。また、コマンドオプションの展開内容も表示されます。 |
-features |
C 言語の各種機能を有効または無効にします。 |
-keeptmp |
コンパイル中に作成された一時ファイルを、自動的に削除する代わりに保持します。 |
-V |
コンパイラが実行する各コンポーネントの名前とバージョン ID を出力するよう、cc
に指示します。 |
-W |
C コンパイルシステムのコンポーネントに引数を渡します。 |
-X |
-X オプションは ISO C 規格に準拠する度合いを指定します。 |
-xc99 |
サポートされる C99 機能のコンパイラ認識を制御します。 |
-xchar |
char の符号を保持します |
-xhelp |
オンラインヘルプ情報を表示します。 |
-xjobs |
コンパイラが作成するプロセスの数を設定します。 |
-xpch |
共通の一連のインクルードファイル群を共有するソースファイルを持つアプリケーションのコンパイル時間を短縮します。 |
-xpchstop |
活性文字列の最後のインクルードファイルを指定するために、-xpch と組み合わせて使用できます。 |
-xtemp |
cc によって使用される一時ファイル用のディレクトリを、dir に設定します。 |
-xtime |
各コンパイルコンポーネントによって使用される時間と資源を報告します。 |
-Y |
C
コンパイルシステムのコンポーネントの場所用の新しいディレクトリを指定します。 |
-YA |
コンポーネントが検索されるデフォルトディレクトリを変更します。 |
-YI |
インクルードファイルが検索されるデフォルトディレクトリを変更します。 |
-YP |
ライブラリファイルが検索されるデフォルトディレクトリを変更します。 |
-YS |
起動オブジェクトファイル用のデフォルトディレクトリを変更します。 |
|
A.1.9 診断のオプション
表 A-9 診断のオプション
|
|
-errfmt |
警告メッセージとの区別がすぐにつくように、エラーメッセージの先頭に「error:」という文字列を付加します。 |
-errhdr |
ヘッダーファイルから指定したグループへの警告を制限します。 |
-erroff |
コンパイラの警告メッセージを抑止します。 |
-errshort |
型の不一致が見つかった際にコンパイラによって生成されるエラーメッセージに含める情報の詳細度を制御します。 |
-errtags |
各警告メッセージのメッセージタグを表示します。 |
-errwarn |
指定の警告メッセージが出力されると、cc はエラーステータスを返して終了します。 |
-v |
より厳格な意味検査を実行し、lint に似たほかの検査も有効にするよう、コンパイラに指示します。 |
-w |
コンパイラの警告メッセージを抑止します。 |
-xe |
ソースファイルの構文と意味のチェックだけを行い、オブジェクトや実行可能コードの出力はしません。 |
-xtransition |
K&R C と Oracle Solaris Studio ISO
C との違いについて警告を発行します。 |
-xvpara |
#pragma MP 指令が指定されているが、並列化用に正しく指定されていない可能性のあるループについて、警告します。 |
|
A.1.10 デバッグオプション
表 A-10 デバッグオプション
|
|
-xcheck |
スタックオーバーフローの実行時検査を追加し、局所変数を初期化します。 |
-g |
デバッガ用の追加のシンボルテーブル情報を生成します。 |
-g3 |
追加のデバッグ情報を生成します。 |
-s |
出力オブジェクトファイルからすべてのシンボリックデバッグ情報を削除します。 |
-xdebugformat |
stabs 形式ではなく dwarf 形式でデバッグ情報を生成します。 |
-xpagesize |
スタックとヒープの優先ページサイズを設定します。 |
-xpagesize_stack |
スタックの優先ページサイズを設定します。 |
-xpagesize_heap |
ヒープの優先ページサイズを設定します。 |
-xs |
dbx のためのオブジェクトファイルの自動読み取りを無効にします。 |
-xvis |
(SPARC) VIS 命令セットに定義されているアセンブリ言語テンプレートをコンパイラが認識します。 |
|
A.1.11 リンクとライブラリのオプション
表 A-11 リンクとライブラリのオプション表
|
|
-B |
リンク用ライブラリのバインディングを static、dynamic のどちらにするかを指定します。 |
-d |
リンクエディタで動的リンクまたは静的リンクを指定します。 |
-G |
動的にリンクされる実行可能ファイルの代わりに共有オブジェクトを生成するためのオプションを、リンクエディタに渡します。 |
-h |
共有動的ライブラリに異なるバージョンのライブラリを持つような名前を割り当てます。 |
-i |
すべての LD_LIBRARY_PATH 設定を無視するオプションを、リンカーに渡します。 |
-L |
リンカーがライブラリを検索する際に使用するリストに、ディレクトリを追加します。 |
-l |
オブジェクトライブラリ libname.so, または libname.a とリンクします。 |
-mc |
オブジェクトファイルの .comment セクションから、重複する文字列を削除します。 |
-mr |
.comment
セクションからすべての文字列を削除します。オブジェクトファイルの string を挿入します。 |
-Q |
出力ファイルに識別情報を出力するかどうかを決定します。 |
-R |
ライブラリの検索ディレクトリを指定するために使用されるディレクトリのコンマ区切りリストを、実行時リンカーに渡します。 |
-xMerge |
データセグメントをテキストセグメントにマージします。 |
-xcode |
コードアドレス空間を指定します。 |
-xldscope |
共有ライブラリをより速くより安全に作成するため、変数と関数の定義のデフォルトスコープを制御します。 |
-xnolib |
デフォルトでライブラリを一切リンクしません |
-xnolibmil |
数学ライブラリルーチンをインライン化しません。 |
-xstrconst |
このオプションは、将来のリリースでは推奨されません。代わりに、 -features=[no%]conststrings を使用します。 デフォルトデータセグメントではなくテキストセグメントの読み取り専用データセクションに、文字列リテラルを挿入します。 |
|
A.1.12 対象プラットフォームのオプション
表 A-12 対象プラットフォームのオプション
|
|
-m32 |-m64 |
コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。 |
-xarch |
命令セットアーキテクチャーを指定します。 |
-xcache |
オプティマイザによって使用されるキャッシュプロパティーを定義します。 |
-xchip |
オプティマイザによって使用されるターゲットプロセッサを指定します。 |
-xregs |
生成されたコードのレジスタの使用法を指定します。 |
-xtarget |
命令セットと最適化の対象とするシステムを指定します。 |
|
A.1.13 x86 固有のオプション
表 A-13 x86 固有のオプション
|
|
-flteval |
浮動小数点の評価を制御します。 |
-fprecision |
浮動小数点制御ワードの丸め精度モードのビットを初期化します |
-fstore |
コンパイラが浮動小数点式または関数の値を代入の左辺の型に変換します。 |
-nofstore |
浮動小数点式または関数の値を代入の左辺の型に変換しません。 |
-xmodel |
64 ビットオブジェクトの形式を Oracle
Solaris x86 プラットフォーム用に変更します。 |
|
A.1.14 廃止オプション
次の表に、非推奨になったオプションを示します。引き続きコンパイラはこれらのオプションを受け付けますが、将来のリリースでそうならない可能性があります。できるだけ速やかに推奨代替オプションを使うようにしてください。
表 A-14 廃止のオプション表
|
|
-dalign |
代わりに -xmemalign=8s を使用してください。 |
-KPIC (SPARC) |
代わりに -xcode=pic32 を使用してください。 |
-Kpic (SPARC) |
代わりに -xcode=pic13 を使用してください。 |
-misalign |
代わりに -xmemalign=1i
を使用してください。 |
-misalign2 |
代わりに -xmemalign=2i を使用してください。 |
-x386 |
代わりに、-xchip=generic を使用してください。 |
-x486 |
代わりに、-xchip=generic を使用してください。 |
-xa |
代わりに、-xprofile=tcov を使用してください。 |
-xarch=v7,v8,v8a |
廃止。 |
-xcg |
-xarch、-xchip、-xcache のデフォルト値を活かすために、代わりに -O を使用してください。 |
--xcrossfile |
廃止。代わりに、-xipo を使用してください。 |
-xlicinfo |
廃止。これに代わるオプションはありません。 |
-xnativeconnect |
廃止。これに代わるオプションはありません。 |
-xprefetch=yes |
代わりに - xprefetch=auto,explicit を使用します。 |
-xprefetch=no |
代わりに
-xprefetch=no%auto,no%explicit を使用します。 |
-xsb |
廃止。これに代わるオプションはありません。 |
-xsbfast |
廃止。これに代わるオプションはありません。 |
-xtarget=386 |
代わりに -xtarget=generic を使用してください。 |
-xtarget=486 |
代わりに -xtarget=generic を使用してください。 |
-xvector=yes |
代わりに、--xvector=lib を使用します。 |
-xvector=no |
代わりに、-xvector=none を使用します。 |
|