アルファベット順のコンパイラ オプション
次の表は、コンパイラ オプションの一覧をアルファベット順で示しています。 コンパイラ オプションのカテゴリ別一覧については、「カテゴリ別のコンパイラ オプション」の記事を参照してください。
コンパイラ オプション
オプション | 目的 |
---|---|
@ |
応答ファイルを指定します。 |
/? |
コンパイラ オプションのリストを出力します。 |
/AI<dir> |
#using ディレクティブに渡されたファイル参照を解決するために検索するディレクトリを指定します。 |
/analyze |
コード分析を有効にします。 |
/arch |
CPU アーキテクチャの最低要件。 |
/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 |
実行可能ファイルの名前を変更します。 |
/feature |
アーキテクチャ機能を有効にする.17.10 |
/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 |
#include を import として扱います。 |
/U<name> |
1 つの定義済みマクロを削除します。 |
/u |
すべての定義済みマクロを削除します。 |
/utf-8 |
ソースおよび実行文字セットを UTF-8 に設定します。 |
/V |
削除されました。 バージョン文字列を設定します。 |
/validate-charset |
互換性のある文字に対してのみ UTF-8 ファイルを検証します。 |
/vd{0|1|2} |
隠し vtordisp クラス メンバーの無効と有効を切り替えます。 |
/vlen |
ベクトルの長さを指定します。 |
/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[-] |
enum 型推論の標準 C++ 規則を有効にします (既定ではオフ)。 |
/Zc:externC[-] |
標準 C++ 規則を extern "C" 関数に適用します (/permissive- で暗黙的に指定)。 |
/Zc:externConstexpr[-] |
constexpr 変数の外部リンケージを有効にします (既定ではオフ)。 |
/Zc:forScope[-] |
標準 C++ for スコープ規則を適用します (既定ではオン)。 |
/Zc:gotoScope |
ローカル変数の初期化に関する標準 C++ goto 規則を適用します ( /permissive- によって暗黙的に示されます)。 |
/Zc:hiddenFriend[-] |
標準 C++ の非表示フレンド規則を適用します (/permissive- で暗黙的に指定) |
/Zc:implicitNoexcept[-] |
必要な関数で暗黙的な noexcept を有効にします (既定ではオン)。 |
/Zc:inline[-] |
参照されていない関数またはデータが COMDAT の場合、または内部リンケージのみの場合は、それらが削除されます (既定ではオフ)。 |
/Zc:lambda[-] |
汎用ラムダでの準拠モードの構文チェック用に新しいラムダ プロセッサを有効にします。 |
/Zc:noexceptTypes[-] |
C++17 noexcept 規則を適用します (C++17 以降では、既定でオン)。 |
/Zc:nrvo[-] |
省略可能なコピーと移動のエリシオンを有効にします (既定では、 /O2 、 /permissive- 、または /std:c++20 以降でオン)。 |
/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 ランタイムで実行する出力ファイルを生成します。 |
17.10 このオプションは、Visual Studio 2022 バージョン 17.10 以降で使用できます。