クイック・リファレンス・ガイドおよび対応表

このセクションの表では、Linux* および Mac OS* X システムで使用されるインテル® C++ コンパイラー・オプションをまとめています。また、各オプションに対応する Windows* のコンパイラー・オプションがあれば、それも示しています。

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

ラベル

意味

i32

IA-32 アーキテクチャー・ベースのシステムで利用可能なオプションです。

i64em

インテル® 64 アーキテクチャー・ベースのシステムで利用可能なオプションです。

i64

IA-64 アーキテクチャー・ベースのシステムで利用可能なオプションです。

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

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

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

インテル® C++ コンパイラーには、インテル® コンパイラー・オプション・マッピング・ツールが含まれています。このツールは、-map-opts (Linux および Mac OS X) または /Qmap-opts (Windows) コンパイラー・オプションを指定することにより、対応するオプションを見つけることができます。

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

Linux および Mac OS X コンパイラー・オプションのクイック・リファレンス

次の表では、サポートされているすべての Linux および Mac OS X コンパイラー・オプションをまとめています。また、対応する Windows コンパイラー・オプションがあれば、それも示しています。

オプション

説明

デフォルト

対応する Windows OS コンパイラー・オプション

-A<name>[(<value>)]

アサーションの識別子を指定します。

オフ

/QA<name>[(<value>)]

-A-

すべての事前定義マクロを無効にします。

オフ

/QA[-]

-[no-]alias-args

関数の引数がほかの引数とエイリアスできるかどうかを指定します。これは古いオプションです。-fargument-[no]alias を使用してください。

-alias-args

/Qalias-args[-]

-[no-]alias-const

定数へのポインター型の パラメーターが非定数へのポインター型の パラメーターとエイリアスしないと仮定するかどうかをコンパイラーに指定します。

-no-alias-const

/Qalias-const[-]

-[no]align
(i32、i64em)

変数および配列を自然にアライメントするかどうかを指定します。

オフ

なし

-ansi

gcc* オプションの -ansi と言語互換性を有効にします。

オフ

なし

-[no-]ansi-alias

最適化で ANSI 準拠の別名規則の使用を有効/無効にします。

-no-ansi-alias

/Qansi-alias[-]

-auto-ilp32
(i64em、i64)

32 ビット・ポインターに安全に変換できる 64 ビット・ポインターがあるか どうか、プログラムを解析するようコンパイラーに指示します。

オフ

/Qauto-ilp32
(i64em、i64)

-ax<processor>
(i32、i64em)

パフォーマンス上の利点がある場合、複数のプロセッサー固有の 自動ディスパッチ・コードを 生成するようにコンパイラーに指示します。

オフ

/Qax<processor>
(i32、i64em)

-B<dir>

インクルード・ファイル、ライブラリー、実行ファイルを検索する ディレクトリーを指定します。

オフ

なし

-Bdynamic
(Linux* OS のみ)

ランタイム時にライブラリーの動的リンクを有効にします。

オフ

なし

-Bstatic
(Linux* OS のみ)

ユーザーのライブラリーとの静的リンクを有効にします。

オフ

なし

-c

リンクを抑止します。

オフ

/c

-C

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

オフ

/C

-[no-]c99

C プログラムの C99 サポートを有効にするかどうかを指定します。

-no-c99

/Qc99[-]

-[no-]check-uninit

初期化されていない変数の確認を行うかどうかを指定します。

-no-check-uninit

なし

-[no-]complex-limited-range

COMPLEX 型のデータを使用するいくつかの算術演算で、 基本代数展開の使用を有効にするかどうかを指定します。

-no-complex-limited-range

/Qcomplex-limited-range[-]

-cxxlib[=<dir>]
-cxxlib-nostd
-no-cxxlib

gcc によって提供された C++ ランタイム・ライブラリーと ヘッダーファイルを 使用してリンクするかどうかを指定します。

C++: -cxxlib
C: -no-cxxlib

なし

-D<name>[=<value>]

オプション値と関連付けできる マクロ名 を定義します。

オフ

/D<name>[=<value>]

-dD

-dN と同じですが、前処理済みのソースに #define 宣言子を出力します。

オフ

/QdD

-debug [keyword]

デバッグ情報の生成を有効/無効にします。

-debug none

/debug [keyword]

-diag-<type> <diag-list>

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

オフ

/Qdiag-<type>:<diag-list>

-diag-dump

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

オフ

/Qdiag-dump

-diag-enable sc-include

診断メッセージを発行する際、ソースチェッカーによりインクルード・ファイルおよびソースファイルが解析されるように指示します。このオプションは、以前の -diag-enable sv-include オプションに相当します。

オフ

/Qdiag-enable:sc-include

-diag-enable sc-parallel
(i32、i64em)

ソースコード中の並列化の解析を有効にします (parallel lint 診断)。

オフ

/Qdiag-enable:sc-parallel
(i32、i64em)

-diag-error-limit <n>

コンパイルを中断するまで許容されるエラーの 最大数を指定します。

<n>=30

/Qdiag-error-limit:<n>

-diag-file[=file]

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

オフ

/Qdiag-file[:file]

-diag-file-append[=file]

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

オフ

/Qdiag-file-append[:file]

-[no-]diag-id-numbers

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

-diag-id-numbers

/Qdiag-id-numbers[-]

-diag-once <id>[,<id>,...]

1 つまたは複数の診断メッセージを 1 度だけ発行するようコンパイラーに指示します。

オフ

/Qdiag-once:<id>[,<id>,...]

-dM

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

オフ

/QdM

-dN

-dD と同じですが、#define 宣言子にはマクロ名のみ出力します。

オフ

/QdN

-dryrun

ドライバー・ツール・コマンドを表示して実行しないように指定します。

オフ

なし

-dumpmachine

ターゲットマシンとオペレーティング・システムの構成を表示します。

オフ

なし

-dumpversion

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

オフ

なし

-dynamiclib
(Mac OS X のみ。i32、i64em)

libtool コマンドを起動してダイナミック・ライブラリーを作成します。

オフ

なし

-dynamic-linker <file>
(Linux のみ)

デフォルト以外のダイナミック・リンカーを指定します。

オフ

なし

-E

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

オフ

/E

-[no-]early-template-check

インスタンス化を行う前に、関数テンプレート・プロトタイプのセマンティクス・チェックを行います。

-no-early-template-check

なし

-EP

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

オフ

/EP

-export

C++ エクスポート・テンプレート機能に対するサポートを有効にします。

オフ

なし

-export-dir <dir>

エクスポートされるテンプレートの検索先のディレクトリー名を指定します。

オフ

なし

F<dir>
(Mac OS X のみ)

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

オフ

なし

-fabi-version=<n>
(i32 のみ)

特定の ABI 実装を選択するようコンパイラーに指示します。

それぞれ異なる

なし

-f[no-]alias

プログラムでエイリアシングを前提に処理するようコンパイラーに指示します。

-falias

/Oa

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

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

-fno-align-functions

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

falign-stack=<mode>
(i32 のみ)

ルーチンへの入口で使用するスタック・アライメントをコンパイラーに指示します。

オフ

-falign-stack=default

-fargument-[no]alias

関数の引数がほかの引数とエイリアスできるかどうかを指定します。

-fargument-alias

/Qalias-args[-]

-fargument-noalias-global

引数がほかの引数やグローバルストレージとエイリアスしないようにコンパイラーに指示します。

オフ

なし

-fasm-blocks
(Mac OS X のみ。i32、i64em)

C または C++ ファイル内で、ブロックおよび全関数のアセンブリー・コードの 使用を有効にします。

オフ

なし

-fast

プログラム全体の速度を最大限にします。

オフ

/fast

-[no-]fast-transcendentals

超越関数への呼び出しを、より高速で精度が 少し低いものに置換します。

オフ

/Qfast-transcendentaks[-]

-f[no-]builtin[-func]

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

オフ

/Oi[-]

-fcode-asm

マシンコード注釈を含むアセンブリー・リストを生成します。

オフ

なし

-f[no-]common

共通シンボルをグローバル定義として扱うかどうかを 指定します。

-fcommon

なし

-fno-exceptions

例外処理テーブルの生成を有効にします。

C++: -fexceptionsC: -fno-exceptions

なし

-f[no-]fnalias

関数内でのエイリアシングを前提に処理します。

-ffnalias

/Ow[-]

-ffreestanding

コンパイルがフリースタンディング環境で行われるようにします。

オフ

/Qfreestanding

-ffunction-sections

独自の COMDAT セクションに各関数を配置します。

オフ

なし

-f[no-]inline

__inline で宣言された関数を インライン展開 (C++) します。

-fno-inline

なし

-f[no-]inline-functions

単一ファイルのコンパイルにおける関数のインライン展開を有効にします。

-finline-functions

なし

-finline-limit=<n>

インライン化される関数の最大サイズを指定します。

オフ

なし

-f[no-]instrument-functions

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

-fno-instrument-functions

/Qinstrument-functions[-]

-f[no-]jump-tables

スイッチ文に対してジャンプテーブルを生成するかどうかを指定します。

-fjump-tables

なし

-f[no-]keep-static-consts

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

-fno-keep-static-consts

/Qkeep-static-consts[-]

-[no-]fma
(i64 のみ。Linux のみ)

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

-fma

/Qfma[-]
(i64 のみ)

-f[no-]math-errno

プログラムが標準算術ライブラリー関数の呼び出しの後に errno をテストしていると仮定するようにコンパイラーに指示します。

-fno-math-errno

なし

-fminshared

コンパイル単位をメインプログラムのコンポーネントとして処理し、共有可能なオブジェクトの一部としてリンクしないように指定します。

オフ

なし

-fmudflap

バッファー・オーバーフローおよびヒープの不正使用を防ぐために、危険なポインター演算をインストルメントします。

オフ

なし

-fno-gnu-keywords

typeof をキーワードとして認識しません。

オフ

なし

-fno-implicit-inline-templates

暗黙的にインスタンス化されるインライン・テンプレートでコードを出力しないようコンパイラーに指示します。

オフ

なし

-fno-implicit-templates

暗黙的にインスタンス化される非インライン・テンプレートでコードを出力しないようコンパイラーに指示します。

オフ

なし

-fno-operator-names

標準で指定されている演算子名のサポートを無効にします。

オフ

なし

-fno-rtti
(i32、i64em)

C++ のランタイムタイプ情報を無効にします。

オフ

なし

-f[no-]non-call-exceptions

トラッピング命令が C++ 例外をスローすることができるコードを生成します。

-fno-non-call-exceptions

なし

-f[no-]non-lvalue-assign

lvalues としてのキャストおよび条件式の使用を許可するかどうかを指定します。

-fnon-lvalue-assign

なし

-[no-]fnsplit
(i32 のみ)

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

-no-fnsplit

/Qfnsplit[-]
(i32、i64)

-f[no-]omit-frame-pointer

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

-fomit-frame-pointer

/Oy[-]

-fp-model keyword

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

-fp-model fast=1

/fp keyword:

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

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

-no-fp-port

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

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

divide や sqrt のような算術関数に、より高速で少し精度が低いコードシーケンスを使用します/使用しません。

-no-fp-relaxed

/Qfp-relaxed[-]
(i64 のみ)

-fp-speculation=<mode>=mode

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

-fp-speculation=fast

/Qfp-speculation:<mode>

-fp-stack-check
(i32、i64em)

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

オフ

/Qfp-stack-check
(i32、i64em)

-fpack-struct

構造体メンバーを一緒にパックするかどうかを指定します。

オフ

なし

-fpascal-strings

Pascal スタイルの文字列を許可します。

オフ

なし

-fpermissive
(i32 のみ)

適合しないコードを許可します。

オフ

なし

-f[no-]pic

位置に依存しないコードを生成するかどうかを指定します。

それぞれ異なる

なし

-fpie
(Linux のみ)

位置に依存しないコードを生成するようにコンパイラーに指示します。生成されたコードは実行ファイルにのみリンクできます。

オフ

なし

-fr32
(Linux のみ。i64 のみ)

上位の浮動小数点レジスターの使用を無効にします。

オフ

なし

-freg-struct-return

(可能な場合) レジスターの struct 値と union 値を返します。

オフ

なし

-fshort-enums

enum 型で必要なサイズのバイトを割り当てるようコンパイラーに指示します。

オフ

なし

-fsource-asm

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

オフ

/FAs

-f[no-]stack-protector

-f[no-]stack-security-check と同じです。

オフ

なし

-f[no-]stack-security-check

バッファー・オーバーランを検出するコードを生成するかどうかを 指定します。

-fno-stack-security-check

/GS[-]

-fsyntax-only

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

オフ

/Zs

-ftemplate-depth-<n>

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

オフ

/Qtemplate-depth-<n>

-ftls-model=model

スレッド・ローカル・ストレージ・モードを変更します。

オフ

なし

-ftrapuv

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

オフ

/Qtrapuv

-[no-]ftz

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

i64: -no-ftz
(i32、i64em: -ftz)

/Qftz[-]

-funroll-loops

-unroll と同じです。

オン

/Qunroll

-funroll-all-loops

ループ開始時に反復回数がわからない場合もループを アンロールします。

オフ

なし

-f[no-]unsigned-bitfields

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

-fno-unsigned-bitfields

なし

-funsigned-char

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

オフ

なし

-f[no-]verbose-asm

コンパイラー注釈を含むアセンブリー・リスト・ファイルを生成します。

-fno-verbose-asm

なし

-fvisibility=keyword
-fvisibility-keyword=<file>

グローバルシンボルのデフォルトの可視属性を指定します。

-fvisibility=default

なし

-fvisibility-inlines-hidden

インラインメンバー関数を hidden にします。

オフ

なし

-g

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

オフ

/Zi、/Z7

-g0

シンボリック・デバッグ情報の生成を無効にします。

オフ

なし

-[no-]gcc

GNU マクロを定義または未定義します。

-gcc

なし

-gcc-sys

システムヘッダーのコンパイル時のみ GNU マクロを定義します。

オフ

なし

-gcc-name=<dir>

gcc コンパイラーの場所を指定します。

オフ

なし

-gcc-version

コンパイラーの動作を gcc と互換にします。

オフ

なし

-gdwarf-2

DWARF2 形式を使用して、デバッグ情報を生成します。

オフ

なし

-[no-]global-hoist

外部グローバルの安全なロードを有効/無効にします。

-global-hoist

/Qglobal-hoist[-]

-gxx-name=<dir>

C++ コンパイル用の環境として g++ コンパイラーを使用します。

オフ

なし

-H

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

オフ

/QH

-help [category]

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

オフ

/help [category]

-help-pragma
(i32、i64em)

サポートするすべてのプラグマを表示します。

オフ

/Qhelp-pragma

-I<dir>

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

オフ

/I<dir>

-[no-]icc

インテル® コンパイラーの特定のマクロを定義します。

-icc

なし

-idirafter<dir>

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

オフ

なし

-imacros <file>

変換単位で先頭のヘッダーを指定します。

オフ

なし

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

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

-no-inline-calloc

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

-inline-debug-info
(Linux のみ)

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

オフ

/Qinline-debug-info

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

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

-no-inline-factor

/Qinline-factor[=n][-]

-inline-forceinline

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

オフ

/Qinline-forceinline

-inline-level=<n>

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

-inline-level=2 (-O2 または -O3 が有効な場合)
-inline-level=0 (-O0 が有効な場合)

/O<n>b

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

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

-no-inline-max-per-compile

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

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

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

-no-inline-max-per-routine

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

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

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

-no-inline-max-size

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

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

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

-no-inline-max-total-size

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

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

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

-no-inline-min-size

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

-ip

単一ファイル IPO を有効にします (ファイル内)。

オフ

/Qip

-ip-no-inlining

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

オフ

/Qip-no-inlining

-ip-no-pinlining
(i32、i64em)

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

オフ

/Qip-no-pinlining
(i32、i64em)

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

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

オフ

/QIPF-flt-eval-method0
(i64 のみ)

-[no-]IPF-fltacc
(i64 のみ。Linux のみ)

浮動小数点の精度に影響を与える最適化を有効/無効にします。これは古いオプションです。

-no-IPF-fltacc

/QIPF-fltacc[-]
(i64 のみ)

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

浮動小数点乗算と加算/減算の組み合わせを有効/無効にします。これは古いオプションです。-fma を使用してください。

-IPF-fma

/QIPF-fma[-]
(i64 のみ)

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

divide や sqrt のような算術関数について、より高速で少し精度が低いコードシーケンスを使用します。これは古いオプションです。-fp-relaxed を使用してください。

-no-IPF-fp-relaxed

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

-ipo[=n]

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

オフ

/Qipo[n]

-ipo-c

複数ファイル情報を持つ単一のオブジェクト・ファイル (ipo_out.o) を生成します。

オフ

/Qipo-c

-ipo-jobs<n>

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

オフ

/Qipo-jobs:<n>

-ipo-S

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

オフ

/Qipo-S

-ipo-separate
(Linux のみ)

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

オフ

/Qipo-separate

-iprefix <prefix>

ヘッダーファイルを含む参照ディレクトリーのプリフィックスを示します。

オフ

なし

-iquote <dir>

インクルード・ファイルの検索パスの前に引用符で囲まれたファイルのディレクトリーを追加します。

オフ

なし

-isystem<dir>

システムのインクルード・パスに追加するディレクトリーを指定します。

オフ

なし

-ivdep-parallel
(i64 のみ。Linux のみ)

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

オフ

/Qivdep-parallel
(i64 のみ)

-iwithprefix<dir>

-iprefix を使用して渡されたプリフィックスに <dir> を追加し、インクルード・ファイルの検索パスの最後に配置します。

オフ

なし

-iwithprefixbefore <dir>

-iwithprefix と類似していますが、インクルード・ディレクトリーは -I ディレクトリーと同じ場所に配置されます。

オフ

なし

-Kc++

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

オフ

/TP

-kernel
(i64 のみ。Linux のみ)

カーネルに組み込まれるコードを生成します。

オフ

なし

-l<string>

指定されたライブラリーを検索するようリンカーに指示します。

オフ

なし

-L<dir>

標準ディレクトリーにあるライブラリーを検索する前に、 指定したディレクトリーにあるライブラリーを検索するようにリンカーに指示します。

オフ

なし

-m[<processor>]

プログラムを実行するプロセッサー専用の最適化コードを生成するように コンパイラーに指示します。

オフ

/arch:<processor>

-M

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

オフ

/QM

-m32
(i32、i64em)

IA-32 アーキテクチャー向けにコードを生成するようコンパイラーに指示します。

オフ

なし

-m64
(i32、i64em)

インテル® 64 アーキテクチャー向けにコードを生成するようコンパイラーに指示します。

オフ

なし

-malign-double
(i32、i64em)

IA-32 アーキテクチャー・ベースのシステムで、double、long double、および long long 型のアライメントを行います。

オフ

なし

-malign-mac68k
(i32、i64em。Mac OS X のみ)

2 バイト境界上に構造体フィールドをアライメントします (m68k 互換)。

オフ

なし

-malign-natural
(i32、i64em。Mac OS X のみ)

自然なサイズの境界上に大きな型をアライメントします (ABI よりも優先されます)。

オフ

なし

-malign-power
(i32、i64em。Mac OS X のみ)

ABI で指定されたアライメント規則に従ってアライメントします。

オン

なし

-map-opts
(Linux のみ)

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

オフ

/Qmap-opts

-march=<processor>
(i32、i64em。Linux のみ)

指定されたプロセッサー向けにコードを生成します。

i32: オフ
i64em: -march=pentium4

なし

-mcmodel=<mem_model>
(i64em。Linux のみ)

特定のメモリーモデルでコード生成とデータ格納を行うようコンパイラーに指示します。

-mcmodel=small

なし

-MD

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

オフ

/QMD

-mdynamic-no-pic
(i32。Mac OS X のみ )

位置に依存しない外部参照を含む、位置に依存する コードを生成します。

オフ

なし

-MF<file>

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

オフ

/QMF<file>

-mfixed-range
(i64。Mac OS X のみ)

特定のレジスターを Linux カーネル用に予約します。

オフ

なし

-MG

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

オフ

/QMG

-mkl[=lib

特定のインテル® マス・カーネル・ライブラリー (インテル® MKL) にリンクするようコンパイラーに指示します。

オフ

/Qmkl[=lib

-minstruction=[no]movbe
(i32、i64em)

MOVBE 命令をインテル® プロセッサー用に生成するかどうかを指定します。

オフ

/Qinstruction:[no]movbe
(i32、i64em)

-MM

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

オフ

/QMM

-MMD

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

オフ

/QMMD

-mp

一部の最適化を無効にして浮動小数点の精度を維持します。

オフ

なし

-MP

各依存関係に対して仮想ターゲットを追加します。

オフ

なし

-mp1

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

オフ

/Qprec

-MQ<target>

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

オフ

なし

-mregparm=<value>

整数の引数を渡すのに使用するレジスターの数を制御します。

オフ

なし

-m[no-]relax
(i64 のみ)

-relax リンカーオプションをリンカーに渡します。

オフ

なし

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

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

オフ

/Qserialize-volatile[-]

-MT<target>

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

オフ

/QMT<target>

-mtune=<processor>

指定されたプロセッサー向けに最適化を実行します。

i32、i64em: -mtune=generic
i64: -mtune=itanium2-p9000

なし

-[no-]multibyte-chars

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

オン

/Qmultibyte-chars[-]

-multiple-processes[=<n>]

複数のプロセスを作成します。

オフ

/MP[:<n>]

-no-bss-init

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

オフ

/Qnobss-init

-nodefaultlibs

リンク時に標準ライブラリーを使用しないようにします。

オフ

なし

-nolib-inline

標準ライブラリー関数または組み込み関数のインライン展開を禁止します。

オフ

なし

-nostartfiles

コンパイラーがリンク時に標準起動ファイルを使用しないようにします。

オフ

なし

-nostdinc++

C++ 標準ディレクトリー内のヘッダーファイルを検索しません。

オフ

なし

-nostdlib

コンパイラーがリンク時に標準ライブラリーおよび標準起動ファイルを使用しないようにします。

オフ

なし

-o<file>

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

オフ

/Fe<file>

-O

最適化を有効にします。

-O2

/O

-O0

最適化を無効にします。

-O2

/Od

-openmp

OpenMP* 宣言子に基づいてマルチスレッド・コードを生成します。

オフ

/Qopenmp

-openmp-lib <type>
(Linux のみ)

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

-openmp-lib legacy

/Qopenmp-lib:<type>

-openmp-link <library>

OpenMP スタティックまたはダイナミック・ランタイム・ライブラリーにリンクします。

-openmp-link dynamic

/Qopenmp-link:<library>

-openmp-profile
(Linux のみ)

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

オフ

/Qopenmp-profile

-openmp-report<n>

OpenMP 並列化の診断レベルを制御します。

-openmp-report1

/Qopenmp-report<n>

-openmp-stubs

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

オフ

/Qopenmp-stubs

-openmp-task <model>

OpenMP タスキングモデルを選択できます。

-openmp-task omp

/Qopenmp-task:<model>

-openmp-threadprivate <type>

OpenMP threadprivate の実装を選択できます。

-openmp-threadprivate legacy

/Qopenmp-threadprivate:<type>

-opt-block-factor=<n>

ループ・ブロッキング係数を指定できます。

オフ

/Qopt-block-factor:<n>

-[no]opt-calloc
(i32、i64em。Linux のみ)

calloc() への呼び出しの代わりに _intel_fast_calloc() への呼び出しを行うようコンパイラーに指示します。

-no-opt-calloc

/Qopenmp-stubs

-[no-]opt-class-analysis

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

-no-opt-class-analysis

/Qopt-class-analysis[-]

-[no-]opt-jump-tables=keyword

switch 文におけるジャンプテーブルの生成を有効/無効にします。

-opt-jump-tables=default

/Qopt-jump-tables[-]

-[no-]opt-loadpair
(i64 のみ。Linux のみ)

ロードペア最適化を有効/無効にします。

-no-opt-loadpair

/Qopt-loadpair[-]
(i64 のみ)

-[no-]opt-malloc-options=<n>

malloc() の代替アルゴリズムを指定できるようにします。

-opt-malloc-options=0

なし

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

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

-opt-mem-bandwidth0

/Qopt-mem-bandwidth<n>
(i64 のみ)

-[no-]opt-mod-versioning
(i64 のみ。Linux のみ)

特定のオペランド型のモジュロ演算のバージョニングを有効/無効にします。

-no-opt-mod-versioning

/Qopt-mod-versioning[-]
(i64 のみ)

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

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

-no-opt-multi-version-aggressive

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

-[no-]opt-prefetch[=<n>]

プリフェッチ挿入による最適化を有効/無効にします。

i32、i64em:-no-opt-prefetch
i64: -opt-prefetch

/Qopt-prefetch[:<n>]

-[no-]opt-prefetch-initial-values
(i64 のみ。Linux のみ)

ループに入る前に発行されるプリフェッチを有効/無効にします。

-no-opt-prefetch-initial-values

/Qopt-prefetch-initial-values [-]
(i64 のみ)

-[no-]opt-prefetch-issue-excl-hint
(i64 のみ。Linux のみ)

排他的ヒントを伴うプリフェッチを有効/無効にします。

-no-opt-prefetch-issue-excl-hint

/Qopt-prefetch-issue-excl-hint [-]
(i64 のみ)

-[no-]opt-prefetch-next-iteration
(i64 のみ。Linux のみ)

次のループ反復で行われるメモリーアクセスに対するプリフェッチを有効/無効にします。

-no-opt-prefetch-next-iteration

/Qopt-prefetch-next-iteration [-]
(i64 のみ)

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

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

-opt-ra-region-strategy=default

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

-opt-report [<n>]

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

-opt-report 2

/Qopt-report[:<n>]

-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)

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

-opt-streaming-stores auto

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

-[no-]opt-subscript-in-range
(i32、i64em)

ループの添字式の中間演算で起こるオーバーフローを有効/無効にします。

-[no-]opt-subscript-in-range

/Qopt-subscript-in-range[-]
(i32、i64em)

-Os

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

オフ

/Os

-p

gprof(1) を使用して、関数のプロファイリングができるようにコンパイルとリンクを行います。

オフ

なし

-P (または -F)

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

オフ

/P

-par-affinity=[modifier,...]type[,permute][,offset]
(Linux のみ)

スレッド・アフィニティーを指定します。

オフ

/Qpar-affinity:[modifier,...]type[,permute][,offset]

-par-num-threads=n

並列領域で使用するスレッド数を指定します。

オフ

/Qpar-num-threads:n

-par-report[n]

自動並列化の診断レベルを制御します。

-par-report1

/Qpar-report[n]

-[no-]par-runtime-control

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

-no-par-runtime-control

/Qpar-runtime-control[-]

-par-schedule-<keyword>[=n]

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

オフ

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

-par-threshold[<n>]

ループの自動並列化のしきい値を設定します。

-par-threshold100

/Qpar-threshold[[:]n]

-parallel

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

オフ

/Qparallel

-pc<n>

浮動小数点の仮数部の精度を制御できるようにします。

-pc80

/Qpc<n>

-pch

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

オフ

/YX

-pch-create <file>

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

オフ

/Yc[file]

-pch-dir <dir>

プリコンパイル済みヘッダーファイルを検索または作成する場所を指定します。

オフ

なし

-pch-use {<file> | <dir>}

プリコンパイル済みヘッダーファイルを使用できるようにします。

オフ

なし

-pie

サポートするプロセッサー上で位置に依存しない実行ファイルを生成します。

オフ

なし

-pragma-optimization-level=<interpretation>

プリフィックスが指定されていない場合に、どの optimization_level プラグマの解釈を使用するかを指定します。

-pragma-optimization-level=Intel

なし

-[no-]prec-div

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

-prec-div

/Qprec-div[-]

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

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

-no-prec-sqrt

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

-print-multi-lib

システム・ライブラリーの場所に関する情報を表示します。

オフ

なし

-[no-]prof-data-order
(Linux のみ)

プロファイル情報が有効な場合、データの順序設定を有効/無効にします。

-no-prof-data-order

/Qprof-data-order[-]

-prof-dir <dir>

プロファイル結果の出力ファイル (*.dyn および *.dpi) を格納するディレクトリーを指定します。

オフ

/Qprof-dir <dir>

-prof-file <file>

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

オフ

/Qprof-file <file>

-[no-]prof-func-groups
(i32、i64em。Linux のみ)

プロファイル情報が有効な場合、関数のグループ化を有効/無効にします。

-no-prof-func-groups

なし

-[no-]prof-func-order

プロファイル情報が有効な場合、関数の順序配置を有効/無効にします。

-no-prof-func-order

/Qprof-func-order [-]

-prof-gen[x]

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

オフ

/Qprof-gen[x]

-prof-hotness-threshold=<n>
(Linux のみ)

関数のグループ化と関数の順序配置のホット性しきい値を設定します。

オフ

/Qprof-hotness-threshold:<n>

-[no-]prof-src-dir

プロファイル・データ・レコードを検索する際、コンパイル対象のソースファイルのディレクトリー情報を使用するかどうかを指定します。

-prof-src-dir

/Qprof-src-dir [-]

-prof-src-root=<dir>

プロファイル・データを検索する際、相対ディレクトリー・パスを使用できます。ベースとなるディレクトリーを指定します。

オフ

/Qprof-src-root=<dir>

-prof-src-root-cwd

プロファイル・データを検索する際、相対ディレクトリー・パスを使用できます。現在の作業ディレクトリーがベースとなります。

オフ

/Qprof-src-root-cwd

-prof-use

最適化でプロファイル情報を使用するようにします。

オフ

/Qprof-use

-pthread

マルチスレッドをサポートする pthreads ライブラリーを使用します。

オフ

なし

-Qlocation,<string>,<dir>

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

オフ

/Qlocation,<string>,<dir>

-Qoption,<string>,<options>

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

オフ

/Qoption,<string>,<options>

-rcd
(i32、i64em)

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

オフ

/Qrcd
(i32、i64em)

-rct
(i32、i64em)

内部 FPU の丸め制御を切り捨てに設定します。

オフ

/Qrct
(i32、i64em)

-reserve-kernel-regs
(i64 のみ。Linux のみ)

カーネルが使用するレジスター f12-f15 および f32-f127 を予約します。

オフ

なし

-[no]restrict

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

オフ

/Qrestrict[-]

-S

アセンブリー・ファイル (.s) を生成します。リンク (*I) は行われません。

オフ

/S

-[no-]save-temps

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

-no-save-temps

/Qsave-temps[-]

-[no-]scalar-rep

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

-no-scalar-rep

/Qscalar-rep[-]

-shared
(Linux のみ)

実行ファイルの代わりに、動的共有オブジェクトを生成します。

オフ

なし

-shared-intel

インテルが提供するライブラリーをすべて動的にリンクします。

オフ

なし

-shared-libgcc
(Linux のみ)

GNU の libgcc ライブラリーを動的にリンクします。

オフ

なし

-[no-]sox
(Linux のみ)

Linux 用の実行ファイルにコンパイルオプションとバージョン情報を保存します/保存しません。

-no-sox

/Qsox[-]

-static
(Linux のみ)

共有ライブラリーとリンクしないようにします。

オフ

なし

-staticlib
(Mac OS X のみ)

libtool コマンドを起動してスタティック・ライブラリーを作成します。

オフ

なし

-static-intel

インテルが提供するライブラリーをすべて静的にリンクします。

オフ

なし

-static-libgcc
(Linux のみ)

GNU の libgcc ライブラリーを静的にリンクします。

オフ

なし

-std=<val>

特定の言語標準に準拠します。

オフ

/Qstd:<val>

-strict-ansi

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

オフ

/Za

-T <file>
(Linux のみ)

ファイルからリンクコマンドを読み取るようにリンカーに指示します。

オフ

なし

-tcheck
(Linux のみ)

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

オフ

/Qtcheck

-tcollect [<lib>]
(Linux のみ)

インテル® トレース・コレクター API を呼び出すインストルメント・プローブを挿入します。

オフ

/Qtcollect[:<lib>]

-tcollect-filter <file>
(Linux のみ)

指定された関数のインストルメンテーションを有効/無効にします。

オフ

/Qtcollect-filter[:<file>]

-tprofile
(Linux のみ)

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

オフ

/Qtprofile

-[no]traceback

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

-notraceback

/[no]traceback

-U<name>

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

オフ

/U<name>

-unroll[n]

ループアンロール回数の上限を設定します。

-unroll

/Qunroll[:n]

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

トリップカウントが一定の小さなループに対し、強力かつ完全なアンロールを行うようにコンパイラーに指示します。

オフ

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

-[no-]use-asm

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

-no-use-asm

/Quse-asm[-]
(i32 のみ)

-use-msasm

Microsoft* MASM スタイルのインライン化アセンブリー・フォーマットを使用します。

オフ

なし

-use-intel-optimized-headers
(i32、i64em)

インクルード・パス検索リストへパフォーマンス・ヘッダー・ディレクトリーを 追加します。

-no-use-intel-optimized-headers

/Quse-intel-optimized-headers [-]
(i32、i64em)

-V

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

オフ

/QV

-[no-]vec

ベクトル化を有効/無効にします。

-vec

/Qvec[-]

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

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

-no-vec-guard-write

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

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

ベクトル化の診断情報を制御します。

-vec-report1

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

--version

GCC スタイルのバージョン情報を表示します。

オフ

なし

-vec-threshold[<n>]
(i32、i64em)

ループのベクトル化のしきい値を設定します。

-vec-threshold100

/Qvec-threshold[[:]n]

-w

すべての警告メッセージを無効にします。

オフ

/w

-w<n>

診断メッセージのレベルを指定します。

オフ

/W<n>

-Wa,<option1>[,<option2>,...]

オプションをアセンブラーに渡します。

オフ

なし

-W[no-]abi

生成されたコードが C++ ABI に準拠していない場合、警告を発行するかどうかを指定します。

-Wno-abi

なし

-Wall

すべての警告を有効にします。

オフ

/Wall

-Wbrief

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

オフ

/WL

-Wcheck

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

オフ

/Wcheck

-W[no-]comment

/* */ コメントの内部に /* がある場合、警告を発行するかどうかを指定します。

オフ

なし

-Wcontext-limit=<n>

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

オフ

/Qcontext-limit:<n>

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

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

オフ

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

-W[no-]deprecated

推奨されていない機能について警告を発行するかどうかを指定します。

オフ

なし

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

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

オフ

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

-Weffc++

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

オフ

/Qeffc++

-Werror

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

オフ

/WX

-Werror-all

すべての警告とリマークをエラーに変更します。

オフ

/Werror-all

-W[no-]extra-tokens

プリプロセッサー宣言子の最後にある余分なトークンについて警告を発行するかどうかを指定します。

-Wno-extra-tokens

なし

-W[no-]format

printf や scanf などの呼び出しで引数のチェックを有効にするかどうかを指定します。

-Wno-format

なし

-W[no-]format-security

format 関数の使用が問題を引き起こす可能性がある場合、コンパイラーが警告を発行するかどうかを指定します。

-Wno-format-security

なし

-Winline

インライン化される項目の診断を有効にします。

オフ

なし

-Wl,<option1>[,<option2>,...]

リンカーにオプションを渡します。

オフ

なし

-W[no-]main

main の戻り型が予想と一致しない場合に警告を発行するかどうかを指定します。

-Wno-main

なし

-W[no-]missing-declaration

あらかじめ定義されていないグローバル関数およびグローバル変数に対して警告を発行するかどうかを指定します。

-Wno-missing-declaration

なし

-W[no-]missing-prototype

プロトタイプの省略に対して警告を発行するかどうかを指定します。

-Wno-missing-prototype

なし

-Wnon-virtual-dtor

非仮想クラスとして宣言されているにもかかわらず、ポリモアフィックのようにみえるクラスの警告を発行します (C++ のみ)。

オフ

なし

-wn<n>

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

-wn100

/Qwn<n>

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

1 つまたは複数の診断メッセージを 1 度だけ発行します。

オフ

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

-Wp,<option1>[,<option2>,...]

プリプロセッサーにオプションを渡します。

オフ

なし

-Wp64

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

オフ

/Wp64

-W[no-]pointer-arith

疑わしいポインター計算に対して警告を発行するかどうかを指定します。

-Wno-pointer-arith

なし

-W[no-]pragma-once

#pragma once の使用にに対して警告を発行するかどうかを指定します。

-Wno-pragma-once

なし

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

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

オフ

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

-Wreorder

メンバー初期化子の順序がメンバーの実行順序と 異なる場合に警告を発行します。

オフ

なし

-W[no-]return-type

関数でデフォルトの int 戻り型が使用されている場合、警告を発行するかどうかを指定します。

-Wno-return-type

なし

-W[no-]shadow

変数宣言が前の宣言を隠す場合、 警告を発行するかどうかを指定します。

-Wno-shadow

なし

-W[no-]strict-prototypes

引数の型を指定しない関数の宣言と定義に対して 警告を発行するかどうかを指定します。

-Wno-strict-prototypes

なし

-W[no-]trigraphs

トリグラフに対して警告を発行するかどうかを指定します。

-Wno-trigraphs

なし

-W[no-]uninitialized

初期化する前に変数を使用している場合、警告を発行するかどうかを指定します。

-Wno-uninitialized

なし

-W[no-]unknown-pragmas

不明な #pragma 宣言子が使用された場合、警告を発行するかどうかを指定します。

-Wno-unknown-pragmas

なし

-W[no-]unused-function

宣言された関数が使用されていない場合、警告を発行するかどうかを指定します。

-Wno-unused-function

なし

-W[no-]unused-variable

宣言された後に使用されていないローカルまたは非定数の 静的変数に対して警告を発行するかどうかを指定します。

-Wno-unused-variable

なし

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

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

オフ

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

-Wwrite-strings

const char * が (非定数の) char * に変換された場合に診断メッセージを発行します。

オフ

なし

-x<processor>
(i32、i64em)

プログラムを実行するインテル® プロセッサー専用の最適化コードを生成します。

それぞれ異なります。オプションの説明を参照してください。

/Qx<processor>
(i32、i64em)

-X

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

オフ

/X

-Xlinker <option>

リンカーオプションを直接リンカーに渡します。

オフ

なし

-Zp[<n>]

バイト境界の構造体のアライメントを指定します。

-Zp16

/Zp[<n>]

関連情報