コンパイラー・オプションの対応表

このセクションでは、Linux* と Mac OS* X オペレーティング・システムで使用されるコンパイラー・オプションと、そのオプションに相当する Windows* オペレーティング・システムのコンパイラー・オプションの対応表を示します。

次のラベルが示されたコンパイラー・オプションは、特定のシステムでのみ利用可能です。

ラベル 意味
i32 IA-32 アーキテクチャー・ベースのシステムで利用可能なオプションです。
i64em インテル(R) 64 アーキテクチャー・ベースのシステムで利用可能なオプションです。
i64 IA-64 アーキテクチャー・ベースのシステムで利用可能なオプションです。

ラベルがない場合、そのオプションはサポートされているすべてのシステムで利用可能です。

ラベルに "のみ" とある場合、そのオプションはラベルで示されたシステムでのみ利用可能です。

オプションについての詳細は、「コンパイラー・オプション (アルファベット順)」を参照してください。

この表で使用されている表記については、「表記規則」を参照してください。

Linux および Mac OS X オプションと Windows オプションの対応表

次の対応表は、サポートされるすべての Linux および Mac OS X オプションと、そのオプションに相当する Windows オプションをリストしています (該当するオプションがある場合)。Linux および Mac OS X オプションの列で、Linux のみに該当する場合は、"Linux のみ" と示されています。

インテル(R) C++ コンパイラーには、インテル(R) コンパイラー・オプション・マッピング・ツールが含まれています。このツールで Windows オプションと Linux オプションを比較 ("マップ") することができます: map-opts、Qmap-opts

Linux および Mac OS X オプション Windows オプション 説明

-[no-]alias-args

/Qalias-args[-]

関数の引数がエイリアスされる C/C++ 規則を有効 (デフォルト)/無効にします。

-[no-]alias-const

/Qalias-const[-]

入力/出力バッファー規則を、ポインター型の引数を持つ関数に適用するかどうかを指定します。

-[no-]ansi-alias

/Qansi-alias[-]

最適化で ANSI 準拠の別名規則の使用を有効/無効 (デフォルト) にします。

-[no-]complex-limited-range

/Qcomplex-limited-range[-]

一部の複素数算術演算で、基本代数展開の使用を有効/無効 (デフォルト) にします。

-[no]debug [keyword]

/[no]debug[:keyword]

デバッグ情報を有効にし、拡張デバッグ情報の出力を制御します。

-[no-]diag-id-numbers

/Qdiag-id-numbers[-]

メッセージ ID を使用して、診断メッセージを表示するようコンパイラーに指示します。

-[no-]fnsplit
(i64)

/Qfnsplit[-]
(i32、i64)

関数分割を有効/無効にします (-prof-use で有効にします)。

-[no-]fp-port
(i32、i64em)

/Qfp-port[-]
(i32、i64em)

代入とキャストの際に、浮動小数点の結果を丸めます (速度に少し影響があります)。

-[no-]ftz

/Qftz[-]

デノーマル結果の 0 へのフラッシュを有効/無効にします。

-[no-]global-hoist

/Qglobal-hoist[-]

外部グローバルの安全なロードを有効 (デフォルト)/無効にします。

-[no-]inline-calloc
(i32、i64em)

/Qinline-calloc[-]
(i32、i64em)

malloc() および memset() への呼び出しとして calloc() へのインライン呼び出しを行うようコンパイラーに指示します。

-[no-]inline-factor[=n]

/Qinline-factor[=n][-]

上限を定義するすべてのインライン化オプションに適用する比率を指定します。

-[no-]inline-max-per-compile[=n]

/Qinline-max-per-compile[=n][-]

コンパイル単位全体に適用するインライン化回数の最大値を指定します。

-[no-]inline-max-per-routine[=n]

/Qinline-max-per-routine[=n][-]

インライン化処理で特定のルーチンにインライン化する回数の最大値を指定します。

-[no-]inline-max-size[=n]

/Qinline-max-size[=n][-]

インライン化処理時に大きなルーチンと判断するサイズの基準を指定します。

-[no-]inline-max-total-size[=n]

/Qinline-max-total-size[=n][-]

インライン展開時のルーチンサイズの上限を指定します。

-[no-]inline-min-size[=n]

/Qinline-min-size[=n][-]

インライン化処理時に小さなルーチンと判断するサイズの基準を指定します。

-[no-]IPF-fltacc
(i64)

/QIPF-fltacc[-]
(i64)

浮動小数点の精度に影響を与える最適化を有効/無効にします。

-[no-]IPF-fma
(i64、Linux のみ)

/QIPF-fma[-]
(i64)

浮動小数点乗算と加算/減算の組み合わせを有効/無効にします。

-[no-]IPF-fp-relaxed
(i64、Linux のみ)

/QIPF-fp-relaxed[-]
(i64)

算術関数について、より高速で少し精度が低いコードシーケンスを有効/無効にします。

-[no-]multibyte-chars

/Qmultibyte-chars[-]

マルチバイト文字のサポートを制御します。

-[no-]opt-class-analysis

/Qopt-class-analysis[-]

C++ クラス階層情報を使用して、コンパイル時に C++ 仮想関数の呼び出しを解析し解決するようコンパイラーに指示します。

-[no-]opt-multi-version-aggressive
(i32、i64em)
 

/Qopt-multi-version-aggressive[-]
(i32、i64em)

ポインターのエイリアスとスカラー置換の確認に強力なマルチバージョンを使用するようコンパイラーに指示します。

-[no-]opt-ra-region-strategy[=keyword]
(i32、i64em)

/Qopt-ra-region-strategy[:keyword]
(i32、i64em)

レジスター・アロケーターが各ルーチンを領域へ分割するために使用する方法を選択します。

-[no-]par-runtime-control

/Qpar-runtime-control[-]

シンボリック・ループ境界のあるループのランタイムチェックを実行するコードを生成します。

-[no-]prec-div

/Qprec-div[-]

浮動小数点除算の精度を上げます (速度に多少影響します)。

-[no-]prec-sqrt
(i32、i64em)

/Qprec-sqrt[-]
(i32、i64em)

平方根計算の精度を上げる特定の最適化を行うかどうかを指定します。

-[no-]prefetch
(i64、Linux のみ)

/Qprefetch[-]
(i64)

プリフェッチ挿入を有効 (デフォルト)/無効にします。

-[no]restrict

/Qrestrict[-]

ポインターの一義化ができるように 'restrict' キーワードを有効/無効にします。

-[no-]save-temps

/Qsave-temps[-]

コンパイル時に作成される中間ファイルを保存するようコンパイラーに指示します。

-[no-]scalar-rep

/Qscalar-rep[-]

ループ変換中に実行されるスカラー置換を有効/無効にします。

-[no-]sox

/Qsox[-]

コンパイラーのオプションとバージョン情報を実行ファイルに保存します/保存しません (デフォルト)。

-[no]traceback

/[no]traceback

ランタイム時のソースファイルのトレースバック情報を表示できるデータをコンパイラーが生成するかどうかを指定します。

-[no-]unroll-aggressive
(i32、i64em)

/Qunroll-aggressive[-]
(i32、i64em)

小さな一定のトリップカウントのループに完全なアンロールを使用するようコンパイラーに指示します。

-[no-]vec-guard-write
(i32、i64em)

/Qvec-guard-write[-]
(i32、i64em)

ベクトル化されたループで条件チェックを実行するようコンパイラーに指示します。

-A-

/QA[-]

すべての事前定義マクロを削除します。

-A<name>[(val)]

/QA<name>[(val)]

val という値を持つアサーション名を作成します。

-ansi

/Za

GNU -ansi と同じです。

-auto-ilp32
(i64、i64em)

/Qauto-ilp32
(i64、i64em)

32 ビット・アドレス空間を超えることができないアプリケーションを指定します (-ipo[n] オプションも指定する必要があります)。

-ax<processor>
(i32、i64em)

/Qax<processor>
(i32、i64em)

パフォーマンス上の利点がある場合、複数のプロセッサー固有のコードを生成します。

-C

/C

前処理済みのソースにコメントを書き込みます。

-c

/c

オブジェクト・ファイル (.o) までコンパイルします。リンクは行われません。

-pch-create <file>

/Yc [file]

プリコンパイル済みヘッダーファイルを作成します。

-D<name>[=<text>]

/D<name>[{=|#}<text>]

マクロを定義します。

-dD

/QdD

前処理済みのソースに #define 宣言子を出力します。

-diag-dump

/Qdiag-dump

有効なすべての診断メッセージを出力して、コンパイルを停止するようコンパイラーに指示します。

-diag-enable port-win

 

Windows に移植するときにエラーになる可能性のある GNU 拡張に対する警告を有効にします。

-diag-enable sv-include

/Qdiag-enable:sv-include

診断メッセージを発行する際、スタティックの検証によりインクルード・ファイルおよびソースファイルが解析されるように指示します。

-diag-file[=file]

/Qdiag-file[:file]

診断結果をファイルに出力します。

-diag-file-append[=file]

/Qdiag-file-append[:file]

診断結果をファイルに追加します。

-diag-type diag-list

/Qdiag-type:diag-list

診断情報の表示を制御します。

-dM

/QdM

前処理を行った後に有効なマクロ定義を出力します (-E とともに使用します)。

-E

/E

前処理の結果を stdout に出力します。

-EP

/EP

#line 宣言子を省いて、前処理の結果を stdout に出力します。

-f[no-]align-functions[=n]
(i32、i64em)

/Qfnalign[-][:n]
(i32、i64em)

最適なバイト境界で関数をアライメントします。

-f[no-]builtin[-func]

/Oi[-]

組み込み関数のインライン展開を有効/無効にします。

-f[no-]fnalias

/Ow[-]

関数内でのエイリアシングを前提に処理します (デフォルト)。

-f[no-]instrument-functions

/Qinstrument-functions[-]

関数のエントリーポイントと終了ポイントをインストルメントするかどうかを指定します。

-f[no-]keep-static-consts

/Qkeep-static-consts[-]

ソースで参照されない変数の割り当てを保持するようコンパイラーに指示します。

-f[no-]omit-frame-pointer

/Oy[-]

EBP を最適化で汎用レジスターとして使用します/使用しません。

-f[no-]stack-security-check

/GS[-]

オーバーフロー・セキュリティー・チェックを有効/無効にします。

-falias

/Oa

プログラムでエイリアシングを前提に処理します (デフォルト)。

-fargument-alias

/Qalias-args

-alias-args と同じです。

-fargument-noalias

/Qalias-args-

-alias-args- と同じです。

-fast

/fast

単一コマンドで複数の最適化を有効にします。

-fcode-asm

/FAc

コード注釈を含むアセンブリー・ファイルを生成します (-S も指定する必要があります)。

-fdata-sections

/Gy

-ffunction-sections と同じです。

-ffnalias

/Ow

関数内でのエイリアシングを前提に処理します (デフォルト)。

-ffunction-sections

/Gy

リンカーに対して関数をパッケージ化します (COMDAT)。

-fno-alias

/Oa-

プログラムでエイリアシングしないことを前提に処理します。

-fno-builtin

/Oi-

組み込み関数のインライン展開を無効にします。

-fno-fnalias

/Ow-

関数内でエイリアシングしないことを前提に処理しますが、複数の呼び出しにわたる場合はエイリアシングを前提に処理します。

-fno-rtti

/GR-

RTTI サポートを無効にします。

-fp-model keyword

/fp:keyword

浮動小数点演算のセマンティクスを制御します。

-fp-speculation=mode

/Qfp-speculation=mode

浮動小数点演算のスペキュレーションを行うモードをコンパイラーに指示します。

-fp-stack-check
(i32、i64em)

/Qfp-stack-check
(i32、i64em)

各関数/プロシージャー呼び出しの後に fp スタックチェックを有効にします。

-fsource-asm

/FAs

ソース注釈を含むアセンブリー・ファイルを作成します。

-fsyntax-only

/Zs

構文チェックとセマンティクス・チェックのみ行います (オブジェクト・ファイルは生成されません)。

-ftemplate-depth-<n>

/Qtemplate-depth-<n>

再帰テンプレートが展開される深さを制御します。

-ftrapuv

/Qtrapuv

初期化されていない変数をトラップします。

-funroll-loops

/Qunroll

デフォルトのヒューリスティックに基づいてループをアンロールします。

-funsigned-char

/J

デフォルトの char 型を unsigned に変更します。

-g

/Zi、/Z7

オブジェクト・ファイルにすべてのデバッグ情報を生成します。

-H

/QH

インクルード・ファイルの順番を出力します。

-help [category]

/help [category]

利用可能なすべてのコンパイラー・オプションまたはコンパイラー・オプションのカテゴリーを表示します。

-I<dir>

/I<dir>

インクルード・ファイルの検索パスにディレクトリーを追加します。

-inline-debug-info
(Linux のみ)

/Qinline-debug-info

呼び出しサイトのソース位置をインライン展開されたコードに割り当てる代わりに、インライン展開されたコードのソース位置を保持します。

-inline-forceinline

/Qinline-forceinline

可能な場合はルーチンをインライン化します。

-inline-level=<n>

/Ob<n>

インライン展開を制御します。

-ip

/Qip

シングルファイル IPO を有効にします (複数ファイル内)。

-IPF-flt-eval-method0
(Linux のみ)

/QIPF-flt-eval-method0

プログラムにより指定された精度で浮動小数点オペランドが評価されます。

-IPF-fp-speculation<mode>
(Linux のみ)

/QIPF-fp-speculation<mode>

次の <mode> 条件で浮動小数点のスペキュレーションを有効にします。

-ip-no-inlining

/Qip-no-inlining

全体または部分的なインライン展開を無効にします (-ip または -ipo が必要です)。

-ip-no-pinlining
(i32、i64em)

/Qip-no-pinlining
(i32、i64em)

部分的なインライン展開を無効にします (-ip または -ipo が必要です)。

-ipo[n]

/Qipo[n]

マルチファイル IPO を有効にします (複数ファイル間)。

-ipo-c

/Qipo-c

マルチファイル・オブジェクト・ファイル (ipo_out.o) を生成します。

-ipo-jobs<n>

/Qipo-jobs:<n>

プロシージャー間の最適化 (IPO) のリンクフェーズで、同時に実行するコマンドの数を指定します。

-ipo-S

/Qipo-S

マルチファイル・アセンブリー・ファイル (ipo_out.s) を生成します。

-ipo-separate
(Linux のみ)

/Qipo-separate

ソースファイルごとに 1 つのオブジェクト・ファイルを作成します。

-ivdep-parallel
(i64、Linux のみ)

/Qivdep-parallel
(i64)

ivdep 宣言子にループ運搬の依存がないことを示します。

-Kc++

/TP

ソースファイルも、認識できないファイルも、すべて C++ ソースファイルとしてコンパイルします。

-M

/QM

makefile の依存情報を生成します。

-m[no-]serialize-volatile
(Linux のみ)

/Qserialize-volatile[-]

volatile データ・オブジェクトの参照に対して、制限されたメモリーアクセスの順序を適用します。

-map-opts
(Linux のみ)

/Qmap-opts

オプション・マッピング・ツールを有効にします。

-MD

/MD、/MDd

前処理とコンパイルを行い、依存情報が含まれている出力ファイル (拡張子 .d) を生成します。

-MF<file>

/QMF<file>

makefile の依存情報を生成します (-M または -MM を指定する必要があります)。

-MG

/QMG

-M と類似していますが、見つからないヘッダーファイルを、生成したファイルとして処理します。

-MM

/QMM

-M と類似していますが、システム・ヘッダー・ファイルをインクルードしません。

-MMD

/QMMD

-MD と類似していますが、システム・ヘッダー・ファイルをインクルードしません。

-mp1

/Qprec

浮動小数点の精度を上げます (速度に与える影響は -mp よりも低いです)。

-MT<target>

/QMT<target>

依存性の生成に対してデフォルトのターゲット規則を変更します。

-nobss-init

/Qnobss-init

BSS への 0 で初期化された変数の配置を無効にします (DATA を使用)。

-nostdinc

/X

-X と同じです。

-O

/O2

-O2 と同じです。

-o<file>

/Fe<file>

出力ファイルの名前を指定します。

-O0

/Od

最適化を禁止します。

-O1

/O1

処理速度について最大限に最適化しますが、速度が上がらないわりにコードサイズが増える一部の最適化機能については無効にします。

-O2

/O2

最適化を有効にします (デフォルト)。

-O3

/O3

-O2 の最適化に加え、さらに強力な最適化 (すべてのプログラムのパフォーマンスが向上するとは限りません) を有効にします。

-openmp

/Qopenmp

OpenMP* 宣言子に基づいてコンパイラーがマルチスレッド・コードを生成するようにします。

-openmp-lib type
(Linux のみ)

/Qopenmp-lib:type

リンクに使用する OpenMP ランタイム・ライブラリーを指定します。

-openmp-profile
(Linux のみ)

/Qopenmp-profile

インストルメント済みの OpenMP ランタイム・ライブラリーにリンクして、OpenMP プロファイリング情報を生成します。

-openmp-report<n>

/Qopenmp-report<n>

OpenMP パラレライザーの診断レベルを制御します。

-openmp-stubs

/Qopenmp-stubs

シーケンシャル・モードで OpenMP プログラムのコンパイルを有効にします。

-opt-mem-bandwidth<n>
(Linux のみ)

/Qopt-mem-bandwidth<n>

プロセッサー間で使用されるメモリー帯域幅を制御するパフォーマンス・チューニングとヒューリスティックを有効にします。

-opt-report <n>

/Qopt-report:n

最適化レポートを生成して、stderr に送ります。

-opt-report-file<file>

/Qopt-report-file<file>

生成されたレポートのファイル名を指定します。

-opt-report-help

/Qopt-report-help

レポートで利用可能な最適化フェーズを表示します。

-opt-report-phase<phase>

/Qopt-report-phase<phase>

レポートを生成するフェーズを指定します。

-opt-report-routine<string>

/Qopt-report-routine<string>

指定された名前を含むルーチンを対象にレポートを作成します。

-opt-streaming-stores keyword
(i32、i64em)

/Qopt-streaming-stores:keyword
(i32、i64em)

最適化のためのストリーミング・ストアの生成を有効にします。

-Os

/Os

処理速度について最適化しますが、速度が上がらないわりにコードサイズが増える一部の最適化機能については無効にします。

-P、-F

/P

#line 宣言子を省いて、前処理の結果を stdout に出力します。

-parallel

/Qparallel

自動並列化を有効にして、並列で安全に実行できるループのマルチスレッド・コードを生成します。

-par-report[n]

/Qpar-report[n]

自動パラレライザーの診断レベルを制御します。

-par-schedule-keyword[=n]

/Qpar-schedule-keyword[[:]n]

DO ループのスケジューリング・アルゴリズムを指定します。

-par-threshold[n]

/Qpar-threshold[n]

並列実行が効果的である可能性に基づいてループの自動並列化のしきい値を設定します。n は 0 から 100 までの範囲の整数です。

-pcn

/Qpcn

浮動小数点の仮数部の精度を 32 (24 ビット)、64 (53 ビット)、または 80 (64 ビット) で設定します。

-pch

/YX

プリコンパイル済みヘッダーファイルの生成と使用を自動化します。

-prof-dir <dir>

/Qprof-dir <dir>

出力ファイル (*.dyn および *.dpi) のプロファイリングに使用するディレクトリーを指定します。

-prof-file <file>

/Qprof-file <file>

プロファイルのサマリーファイルにファイル名を指定します。

-prof-gen[x]

/Qprof-gen[x]

プロファイリング用にプログラムをインストルメントします。

-prof-gen-sampling

/Qprof-gen-sampling

サンプル収集ツールで使用するためのコードを準備します。

-prof-use

/Qprof-use

最適化中にプロファイリング情報が使用できるようにします。

-Qlocation,<string>,<dir>

/Qlocation,<string>,<dir>

<string> で指定したツールの場所として <dir> を設定します。サポートされるツールはオペレーティング・システムに依存します。

-Qoption,<string>,<options>

/Qoption,<string>,<options>

<string> で指定したツールにオプション <options> を渡します。サポートされるツールはオペレーティング・システムに依存します。

-rcd

/Qrcd

浮動小数点から整数への高速変換を行うための丸めモードです。

-S

/S

アセンブリー (.s) までコンパイルします。リンク (*I) を行いません。

-ssp
(Linux のみ)

/Qssp

ソフトウェア・ベースのスペキュレーティブ・プリコンピュテーションを有効にします。

-strict-ansi

/Za

ANSI 規格に厳密に準拠している言語方言を選択します。

-tcheck
(Linux のみ)

/Qtcheck

マルチスレッドの不具合を検出するためのインストルメンテーションを生成します。

-tcollect[=lib]
(Linux のみ)

/Qtcollect[=lib]

インテル(R) トレースコレクター API の呼び出しを検証するインストルメンテーションを挿入します。

-tprofile
(Linux のみ)

/Qtprofile

マルチスレッドのパフォーマンスを解析するためのインストルメンテーションを生成します。

-U<name>

/U<name>

事前定義済みマクロを削除します。

-unroll[n]

/Qunroll[:n]

ループのアンロール回数の上限を設定します。アンロールを行わない場合は 0 を指定します。

-use-asm

/Quse-asm[-]
(i64)

アセンブラーからオブジェクト・ファイルを生成します。

-pch-use <file | dir>

/Yu[file]

プリコンパイル済みヘッダーファイルを使用します。

-V

/QV

コンパイラーのバージョン情報を表示します。

-vec-report[n]
(i32、i64em)

/Qvec-report[n]
(i32、i64em)

ベクトライザーの診断情報の量を指定します。

-Wall

/Wall

警告メッセージをすべて表示します。

-Wbrief

/WL

1 行の簡単な診断を表示します。

-Wcheck

/Wcheck

特定のコード用にコンパイル時にコードチェックを実行します。

-Wcontext-limit=<n>

/Qcontext-limit=<n>

診断メッセージに示されるテンプレートのインスタンス化コンテキストの上限を設定します。

-wd<L1>[,<Ln>,...]

/Qwd<L1>[,<Ln>,...]

L1 から Ln までの診断結果を無効にします。

-we<L1>[,<Ln>,...]

/Qwe<L1>[,<Ln>,...]

L1 から Ln までの診断結果の重要度をエラーに変更します。

-Weffc++

/Qeffc++

特定の C++ プログラミング・ガイドラインに基づく警告を有効にします。

-Werror

/WX

警告をエラーと見なします。

-wn<n>

/Qwn<n>

エラーの最大数を出力します。

-Wp64

/Wp64

64 ビット・ポーティングの診断結果を出力します。

-wr<L1>[,<Ln>,...]

/Qwr<L1>[,<Ln>,...]

L1 から Ln までの診断結果の重要度をリマークに変更します。

-ww<L1>[,<Ln>,...]

/Qww<L1>[,<Ln>,...]

L1 から Ln までの診断結果の重要度を警告に変更します。

-x<processor>
(i32、i64em)

/Qx<processor>
(i32、i64em)

<processor> で指定されたプロセッサー上でのみ動作する専用コードを生成します。

-X

/X

インクルード・ファイルの検索パスから標準ディレクトリーを除外します