アルファベット順のコンパイラ オプション

次の表は、コンパイラ オプションの一覧をアルファベット順で示しています。 コンパイラ オプションのカテゴリ別一覧については、「カテゴリ別のコンパイラ オプション」の記事を参照してください。

コンパイラ オプション

オプション 目的
@ 応答ファイルを指定します。
/? コンパイラ オプションのリストを出力します。
/AI<dir> #using ディレクティブに渡されたファイル参照を解決するために検索するディレクトリを指定します。
/analyze コード分析を有効にします。
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> CPU アーキテクチャの最低要件。 IA32、SSE、および SSE2 は x86 のみです。
/arm64EC arm64EC ABI と互換性のあるコードを生成します。
/await コルーチン (再開可能な関数) 拡張機能を有効にします。
/await:strict 標準 C++ 20 コルーチン サポートを以前の言語バージョンで有効にします。
/bigobj .obj ファイル内のアドレス指定可能なセクションの数を増やします。
/C プリプロセス時にコメントを保持します。
/c リンクを行わないでコンパイルします。
/cgthreads 最適化およびコード生成に使用する cl.exe スレッド数を指定します。
/clr 共通言語ランタイムで実行する出力ファイルを作成します。
/clr:implicitKeepAlive- System::GC::KeepAlive(this) の暗黙的な出力を無効にします。
/clr:initialAppDomain Visual C++ 2002 の最初の AppDomain 動作を有効にします。
/clr:netcore .NET Core ランタイムを対象とするアセンブリを生成します。
/clr:noAssembly アセンブリを生成しません。
/clr:nostdimport 必要なアセンブリを暗黙的にインポートしません。
/clr:nostdlib アセンブリを検索するときに、システムの .NET Framework ディレクトリを無視します。
/clr:pure IL のみの出力ファイル (ネイティブの実行可能コードは含まれません) を生成します。
/clr:safe IL のみの検証可能な出力ファイルを作成します。
/constexpr:backtrace<N> 診断で N 個の constexpr 評価を表示します (既定値は 10)。
/constexpr:depth<N> constexpr 評価の再帰深度の制限 (既定値は 512)。
/constexpr:steps<N> N 個のステップの後で constexpr 評価を終了します (既定値は 100,000)
/D<name>{=|#}<text> 定数とマクロを定義します。
/diagnostics 診断形式: 列情報を出力します。
/diagnostics:caret[-] 診断形式: 列および指定されたソースの行を出力します。
/diagnostics:classic 従来の診断形式を使用します。
/doc ドキュメント コメントを XML ファイルに出力します。
/E プリプロセッサ出力を標準出力にコピーします。
/EHa C++ 例外処理を有効にします (SEH 例外あり)。
/EHc extern "C" の既定値は nothrow です。
/EHr 常に noexcept ランタイム終了チェックを生成します。
/EHs C++ 例外処理を有効にします (SEH 例外なし)。
/EP プリプロセッサ出力を標準出力にコピーします。
/errorReport 削除されました。 Windows エラー報告 (WER) 設定は、エラー報告を制御します。
/execution-charset 実行文字セットを設定します。
/experimental:log 実験用構造化 SARIF 出力を有効にします。
/experimental:module 試験的なモジュールのサポートを有効にします。
/exportHeader 入力引数で指定したヘッダー ユニット ファイル (.ifc) を作成します。
/external:anglebrackets <> を介して含まれるすべてのヘッダーを外部として扱います。
/external:env:<var> 外部ヘッダーの場所が含まれる環境変数を指定します。
/external:I <path> 外部ヘッダーの場所を指定します。
/external:templates[-] テンプレート インスタンス化チェーンにおける警告レベルを評価します。
/external:W<n> 外部ヘッダーの警告レベルを設定します。
/F スタック サイズを設定します。
/FA アセンブリ リスト ファイルを構成します。
/Fa アセンブリ リスト ファイルを作成します。
/fastfail fast-fail モードを有効にします。
/favor:<blend|AMD64|INTEL64|ATOM> 指定したアーキテクチャまたは一連のアーキテクチャ用に最適化されたコードを生成します。
/FC 診断テキストで cl.exe に渡されるソース コード ファイルの完全なパスを表示します。
/Fd プログラム データベース ファイルの名前を変更します。
/Fe 実行可能ファイルの名前を変更します。
/FI<file> 指定したインクルード ファイルをプリプロセスします。
/Fi プリプロセス済みの出力ファイルの名前を指定します。
/Fm マップファイルを作成します。
/Fo オブジェクト ファイルを作成します。
/Fp プリコンパイル済みヘッダー ファイルの名前を指定します。
/fp:contract コードを生成するときの浮動小数点の短縮形を検討します。
/fp:except[-] コードを生成するときの浮動小数点の例外を検討します。
/fp:fast "fast" 浮動小数点モデルです。結果の予測が困難になります。
/fp:precise "precise" 浮動小数点モデルです。結果が予測可能です。
/fp:strict "strict" 浮動小数点モデルです (/fp:except を意味します)。
/fpcvt:BC 浮動小数点数から符号なし整数への変換の互換性。
/fpcvt:IA Intel ネイティブな浮動小数点から符号なし整数への変換の動作。
/FR, /Fr 生成された .sbr ブラウザー ファイルに名前を指定します。 /Fr は非推奨とされます。
/FS PDB ファイルへの書き込みを MSPDBSRV.EXE によりシリアル化します。
/fsanitize AddressSanitizer などのサニタイザー インストルメンテーションのコンパイルを有効にします。
/fsanitize-coverage LibFuzzer などのライブラリに対してコード カバレッジ インストルメンテーションのコンパイルを有効にします。
/Ft<dir> #import 用に生成されたヘッダー ファイルの場所。
/FU<file> #using ディレクティブに渡された場合と同じ方法でファイル名の使用を強制します。
/Fx 挿入されたコードをソース ファイルとマージします。
/GA Windows アプリケーション用に最適化します。
/Gd __cdecl 呼び出し規約を使用します。 (x86 のみ)
/Ge 削除されました。 スタック プローブをアクティブにします。
/GF 文字列プールを有効にします。
/GH フック関数 _pexitを呼び出します。
/Gh フック関数 _penterを呼び出します。
/GL[-] プログラム全体の最適化を有効にします。
/Gm[-] 削除されました。 簡易リビルドを有効にします。
/GR[-] ランタイム型情報 (RTTI: Run-Time Type Information) を有効にします。
/Gr __fastcall 呼び出し規約を使用します。 (x86 のみ)
/GS[-] バッファーのセキュリティをチェックします。
/Gs[n] スタック プローブを制御します。
/GT 静的スレッド ローカル ストレージを使用して割り当てられたデータに対して、ファイバー保護をサポートします。
/Gu[-] 個別の関数に個別のアドレスが含まれるようにします。
/guard:cf[-] 制御フロー ガードのセキュリティ チェックを追加します。
/guard:ehcont[-] EH 継続メタデータを有効にします。
/Gv __vectorcall 呼び出し規約を使用します。 (x86 と x64 のみ)。
/Gw[-] プログラム全体のグローバル データの最適化を有効にします。
/GX[-] 削除されました。 同期例外処理を有効にします。 代わりに /EH を使用してください
/Gy[-] 関数レベルのリンクを有効にします。
/GZ 削除されました。 高速チェックを有効にします (/RTC1 と同じです)
/Gz __stdcall 呼び出し規約を使用します。 (x86 のみ)
/H 削除されました。 外部名 (パブリック名) の長さを制限します。
/headerName 指定されたヘッダーからヘッダー ユニットをビルドします。
/headerUnit 指定したヘッダーのヘッダー ユニット ファイル (.ifc) を検索する場所を指定します。
/HELP コンパイラ オプションのリストを出力します。
/homeparams 関数の実行に入ったときに、レジスタで渡されたパラメーターを、強制的にスタック内のその場所に書き込みます。 このコンパイラ オプションは x64 コンパイラ専用です (ネイティブ コンパイルおよびクロス コンパイル)。
/hotpatch ホットパッチ可能なイメージを作成します。
/I<dir> ディレクトリ内でインクルード ファイルを検索します。
/ifcOutput ビルド .ifc ファイルの出力ファイル名またはディレクトリを指定します。
/interface 入力ファイルをモジュール インターフェイス ユニットとして扱います。
/internalPartition 入力ファイルを内部パーティション単位として扱います。
/J 既定の char 型を変更します。
/jumptablerdata switch case ステートメントのジャンプ テーブルをセクションに .rdata 配置します。
/JMC ネイティブ C++ マイ コードのみデバッグをサポートします。
/kernel コンパイラとリンカーは、Windows カーネルで実行できるバイナリを作成します。
/LD ダイナミック リンク ライブラリを作成します。
/LDd デバッグ バージョンのダイナミック リンク ライブラリを作成します。
/link 指定したオプションを LINK に渡します。
/LN MSIL .netmodule を作成します。
/MD MSVCRT.lib を使用して、マルチスレッド DLL をコンパイルして作成します。
/MDd MSVCRTD.lib を使用して、デバッグ バージョンのマルチスレッド DLL をコンパイルして作成します。
/MP 複数のソース ファイルを同時にビルドします。
/MT LIBCMT.lib を使用して、マルチスレッド実行可能ファイルをコンパイルして作成します。
/MTd LIBCMTD.lib を使用して、デバッグ バージョンのマルチスレッド実行可能ファイルをコンパイルして作成します。
/nologo 著作権情報を表示しません。
/O1 コードを最小化します。
/O2 コードを最速化します。
/Ob<n> 関数のインライン展開を制御します。
/Od 最適化を無効にします。
/Og 削除されました。 グローバル最適化を使用します。
/Oi[-] 組み込み関数を生成します。
/openmp ソース コードで #pragma omp を有効にします。
/openmp:experimental OpenMP 2.0 言語拡張機能を有効にして、OpenMP 3.0+ 言語拡張機能を選択します。
/openmp:llvm LLVM ランタイムが使用されている OpenMP 言語拡張機能。
/options:strict 認識されないコンパイラ オプションがエラーになります。
/Os 実行可能ファイルで、サイズの小ささを優先させます。
/Ot 実行可能ファイルで、実行速度を優先させます。
/Ox /GF または /Gy を含まない /O2 のサブセットです。
/Oy フレーム ポインターなし (x86 のみ)
/P プリプロセッサ出力をファイルに書き込みます。
/PD すべてのマクロ定義を出力します。
/permissive[-] 標準準拠モードを設定します。
/PH プリプロセス時に #pragma file_hash を生成します。
/presetPadding スタック ベースのクラス型のパディングをゼロ初期化します。
/Qfast_transcendentals 高速超越関数を生成します。
/QIfist 削除されました。 浮動小数点型から整数型への変換が必要なときには、ヘルパー関数 _ftol を呼び出しません。 (x86 のみ)
/Qimprecise_fwaits fwait ブロックの中にある try コマンドを削除します。
/QIntel-jcc-erratum Intel JCC エラッタのマイクロコード更新によるパフォーマンスへの影響を軽減します。
/Qpar-report:<n> 自動並列化のレポート レベルを有効にします。
/Qpar ループの自動並列化を有効にします。
/Qsafe_fp_loads 浮動小数点値の整数移動命令を使用し、特定の浮動小数点読み込み最適化を無効にします。
/Qspectre[-] Spectre 攻撃のクラスに対して CVE 2017-5753 の軽減策を有効にします。
/Qspectre-load すべての読み込み命令に対してシリアル化命令を生成します。
/Qspectre-load-cf メモリを読み込むすべての制御フロー命令に対してシリアル化命令を生成します。
/Qvec-report:<n> 自動ベクター化のレポート レベルを有効にします。
/reference 名前付きモジュール IFC を使います。
/RTC1 高速ランタイム チェックを有効にします (/RTCsu と同じ)。
/RTCc 実行時に小さい型のチェックに変換します。
/RTCs スタック フレーム ランタイム チェックを有効にします。
/RTCu 初期化されていないローカルな使用法のチェックを有効にします。
/scanDependencies C++ 標準 JSON 形式でモジュールの依存関係を一覧表示します。
/sdl より多くのセキュリティ機能と警告を有効にします。
/showIncludes コンパイル時にすべてのインクルード ファイルの一覧を表示します。
/source-charset ソース文字セットを設定します。
/sourceDependencies すべてのソース レベルの依存関係を一覧表示します。
/sourceDependencies:directives モジュールとヘッダー ユニットの依存関係を一覧表示します。
/std:c++14 C++14 標準 ISO/IEC 14882:2014 (既定)。
/std:c++17 C++17 標準 ISO/IEC 14882:2017。
/std:c++20 C++20 標準 ISO/IEC 14882:2020。
/std:c++latest 最新の Draft C++ 標準プレビュー機能。
/std:c11 C11 標準 ISO/IEC 9899:2011。
/std:c17 C17 標準 ISO/IEC 9899:2018。
/std:clatest 最新のドラフト C 標準プレビュー機能。
/TC すべてのソース ファイルが C であることを指定します。
/Tc C ソース ファイルを指定します。
/TP すべてのソース ファイルが C++ であることを指定します。
/Tp C++ ソース ファイルを指定します。
/translateInclude #includeimport として扱います。
/U<name> 1 つの定義済みマクロを削除します。
/u すべての定義済みマクロを削除します。
/utf-8 ソースおよび実行文字セットを UTF-8 に設定します。
/V 削除されました。 バージョン文字列を設定します。
/validate-charset 互換性のある文字に対してのみ UTF-8 ファイルを検証します。
/vd{0|1|2} 隠し vtordisp クラス メンバーの無効と有効を切り替えます。
/vmb メンバーへのポインターに対して、最適なクラスを使用します。
/vmg メンバーへのポインターに対して、ジェネリック クラスを使用します。
/vmm 多重継承を宣言します。
/vms 単一継承を宣言します。
/vmv 仮想継承を宣言します。
/volatile:iso 揮発性アクセスで、取得/解除セマンティクスは保証されません。
/volatile:ms 揮発性アクセスで、取得/解除セマンティクスが保証されます。
/volatileMetadata 揮発性メモリ アクセスでメタデータを生成します。
/w すべての警告を無効にします。
/W0/W1, /W2, /W3/W4 出力警告レベルを設定します。
/w1<n>/w2<n>、、 /w3<n>/w4<n> 指定した警告の警告レベルを設定します。
/Wall 既定で無効にされた警告も含め、すべての警告を有効にします。
/wd<n> 指定した警告を無効にします。
/we<n> 指定した警告をエラーとして扱います。
/WL コマンド ラインから C++ ソース コードをコンパイルするときの、エラー メッセージと警告メッセージの 1 行診断を有効にします。
/wo<n> 指定した警告を 1 回のみ表示します。
/Wv:xx[.yy[.zzzzz]] 指定したバージョンのコンパイラの後に導入した警告を無効にします。
/WX 警告をエラーとして扱います。
/X 標準のインクルード ディレクトリを無視します。
/Y- 現在のビルドで、他のすべてのプリコンパイル済みヘッダー コンパイラ オプションを無視します。
/Yc .PCH ファイルを作成します。
/Yd 削除されました。 すべてのオブジェクト ファイルに、詳細なデバッグ情報を取り込みます。 代わりに /Zi を使用してください
/Yl デバッグ ライブラリの作成時に PCH の参照を挿入します。
/Yu ビルド時にプリコンパイル済みヘッダー ファイルを使用します。
/Z7 C 7.0 互換のデバッグ情報を生成します。
/Za C コードの C89 言語拡張機能を無効にします。
/Zc:__cplusplus[-] __cplusplus マクロを有効にして、サポートされている標準を報告します (既定ではオフ)。
/Zc:__STDC__ マクロで __STDC__ C 標準がサポートされていることを報告できるようにします (既定ではオフ)。
/Zc:alignedNew[-] C++17 のオーバーアラインされた動的割り当てを有効にします (C++17 では、既定でオン)。
/Zc:auto[-] 新しい標準 C++ の auto を適用します (既定ではオン)。
/Zc:char8_t[-] C++20 ネイティブの u8 リテラル サポートを const char8_t として有効または無効にします (/std:c++20 の場合を除き、既定ではオフ)。
/Zc:enumTypes[-] 型推論の標準 C++ 規則を enum 有効にします (既定ではオフ)。
/Zc:externC[-] 標準 C++ 規則を extern "C" 関数に適用します (/permissive- で暗黙的に指定)。
/Zc:externConstexpr[-] constexpr 変数の外部リンケージを有効にします (既定ではオフ)。
/Zc:forScope[-] 標準 C++ for スコープ規則を適用します (既定ではオン)。
/Zc:gotoScope ローカル変数の初期化 (暗黙的/permissive-) に関する標準 C++ goto 規則を適用します。
/Zc:hiddenFriend[-] 標準 C++ の非表示フレンド規則を適用します (/permissive- で暗黙的に指定)
/Zc:implicitNoexcept[-] 必要な関数で暗黙的な noexcept を有効にします (既定ではオン)。
/Zc:inline[-] 参照されていない関数またはデータが COMDAT の場合、または内部リンケージのみの場合は、それらが削除されます (既定ではオフ)。
/Zc:lambda[-] 汎用ラムダでの準拠モードの構文チェック用に新しいラムダ プロセッサを有効にします。
/Zc:noexceptTypes[-] C++17 noexcept 規則を適用します (C++17 以降では、既定でオン)。
/Zc:nrvo[-] 省略可能なコピーと移動のエリシオンを有効にします (既定では 、または/std:c++20/permissive-それ以降の下/O2でオン)。
/Zc:preprocessor[-] 新しい準拠プリプロセッサを使用します (C11/C17 を除き、既定ではオフ)。
/Zc:referenceBinding[-] 一時 UDT は非 const lvalue 参照にバインドされません (既定ではオフ)。
/Zc:rvalueCast[-] 標準 C++ の明示的な型変換規則を適用します (既定ではオフ)。
/Zc:sizedDealloc[-] C++14 グローバル サイズの割り当て解除関数を有効にします (既定ではオン)。
/Zc:strictStrings[-] char* または wchar_t* 変換への文字列リテラルを無効にします (既定ではオフ)。
/Zc:templateScope[-] 標準の C++ テンプレート パラメーターシャドウルールを適用します (既定ではオフ)。
/Zc:ternary[-] オペランド型の条件演算子規則を適用します (既定ではオフ)。
/Zc:threadSafeInit[-] スレッドセーフなローカルでの静的な初期化を有効にします (既定ではオン)。
/Zc:throwingNew[-] 失敗した場合に operator new のスローを想定します (既定ではオフ)。
/Zc:tlsGuards[-] TLS 変数の初期化のランタイム チェックを生成します (既定ではオン)。
/Zc:trigraphs トライグラフを有効にします (廃止、既定ではオフ)。
/Zc:twoPhase[-] 不適合テンプレートの解析動作 (既定に準拠) を使用します。
/Zc:wchar_t[-] wchar_t は、typedef ではなく、ネイティブ型です (既定ではオン)。
/Zc:zeroSizeArrayNew[-] オブジェクトのサイズが 0 の配列のメンバー new/delete を呼び出します (既定ではオン)。
/Ze 削除されました。 C89 言語拡張機能を有効にします。
/Zf 並列ビルドでの PDB 生成時間を短縮します。
/ZH:[MD5|SHA1|SHA_256] デバッグ情報のチェックサムに MD5、SHA-1、または SHA-256 を指定します。
/ZI エディット コンティニュと互換性のあるプログラム データベースにデバッグ情報を含めます。 (x86 のみ)
/Zi 詳細なデバッグ情報を生成します。
/Zl .obj ファイルから既定のライブラリ名を削除します。
/Zm プリコンパイル済みヘッダーのメモリ割り当て制限を指定します。
/Zo[-] 最適化されたコードのデバッグ情報をより詳細に生成します。
/Zp[n] 構造体メンバーをパックします。
/Zs 構文だけをチェックします。
/ZW Windows ランタイムで実行する出力ファイルを生成します。

関連項目

MSVC コンパイラ オプション
MSVC コンパイラのコマンド ライン構文