デバッグ | 「実効テスト」で、プログラムのテスト・修正が目的 |
コンパイル | 「書き出し」の一部で、完成したプログラムを実行可能なオブジェクトコードに変換する作業。 |
リンク | 「書き出し」の一部で、実行可能なオブジェクトコードのファイルを組み合わせて、実行可能な状態にする作業。 |
ビルド | 「コンパイル」と「リンク」を合わせた作業で、「コンパイル」して「リンク」することが「ビルド」。 |
エントリ | 説明 |
---|---|
option |
1 つ以上の CL オプションを指定。 すべてのオプションは、指定されたすべてのソース ファイルに適用。 オプションは、スラッシュ (/) またはダッシュ (-) で指定。 引数を取るオプションには、オプションと引数との間にスペースを挿入する、挿入しないが別れる。 「/HELP」オプション以外のオプション名では、大文字と小文字を区別。 |
file |
「ソース ファイル」「.obj ファイル」「ライブラリ」のいずれかの名前を指定。 「cl」は、ソース ファイルをコンパイルし、「.obj」ファイルとライブラリの名前をリンカに渡す。 |
lib |
1 つ以上のライブラリ名を指定。 このライブラリ名はリンカに渡される。 |
command-file |
複数のオプションをファイル名を含むファイルを指定。 |
link-opt |
1 つ以上のリンカ オプションを指定。 指定したオプションはリンカに渡される。 「/c」オプションが指定されていないと、CL コンパイラは自動的に LINK を呼び出す。 「cl」コマンドと「オプション」「引数」でも、リンカを制御可能。 |
オプション | 目的 |
---|---|
最適化 | |
/O1 | コードを最小化。 |
/O2 | コードを最速化。 |
/Ob | 関数のインライン展開を制御。 |
/Od | 最適化を無効に。 |
/Og | グローバル最適化を使用。 |
/Oi | 組み込み関数を生成。 |
/Os | 実行可能ファイルで、サイズの小ささを優先させる。 |
/Ot | 実行可能ファイルで、実行速度を優先させる。 |
/Ox | 最大限の最適化 (/Ob2 ~ /Gs) を行います。 |
/Oy | フレーム ポインタを省略します (x86 のみ)。 |
コード生成オプション | |
/arch | コード生成で SSE または SSE2 命令を使用(x86 のみ)。 |
/bigobj | .obj ファイル内のアドレス指定可能なセクションの数を増や。 |
/clr | 共通言語ランタイムで実行する出力ファイルを作成。 |
/EH | 例外処理のモデルを指定。 |
/favor | 特定の x64 アーキテクチャ、または AMD64 アーキテクチャおよび Extended Memory 64 Technology (EM64T) アーキテクチャの両方のマイクロアーキテクチャの仕様に合わせて最適化されるコードを作成。 |
/fp | 浮動小数点の動作を指定。 |
/G1 | Itanium プロセッサ用に最適化。IPF クロス コンパイラまたは IPF ネイティブ コンパイラだけで使用できます。 |
/G2 | Itanium2 プロセッサ用に最適化。IPF クロス コンパイラまたは IPF ネイティブ コンパイラだけで使用できます。 |
/Gd | __cdecl 呼び出し規約を使用(x86 のみ)。 |
/Ge | スタック プローブをアクティブに。 |
/GF | 文字列プールを有効にする。 |
/Gh | フック関数 _penter を呼び出す。 |
/GH | フック関数 _pexit を呼び出す。 |
/GL | プログラム全体の最適化を有効にする。 |
/Gm | 簡易リビルドを有効にする。 |
/GR | ランタイム型情報 (RTTI: Run-Time Type Information) を有効にする。 |
/Gr | __fastcall 呼び出し規約を使用(x86 のみ)。 |
/Gs | スタック プローブを制御。 |
/GT | 静的スレッド ローカル ストレージを使用して割り当てられたデータに対して、ファイバ保護をサポート。 |
/GX | 同期例外処理を有効にする。 |
/Gy | 関数レベルのリンクを有効にする。 |
/Gz | __stdcall 呼び出し規約を使用(x86 のみ)。 |
/MD | MSVCRT.lib を使用して、マルチスレッド DLL を作成。 |
/MDd | MSVCRTD.lib を使用して、デバッグ バージョンのマルチスレッド DLL を作成。 |
/MT | LIBCMT.lib を使用して、マルチスレッド実行可能ファイルを作成。 |
/MTd | LIBCMTD.lib を使用して、デバッグ バージョンのマルチスレッド実行可能ファイルを作成。 |
/Qfast_transcendentals | 高速超越関数を生成。 |
/Qimprecise_fwaits | try ブロックの中にある fwait コマンドを削除。 |
出力ファイル | |
/FA | リスティング ファイルを作成。 リスティング ファイル名を設定。 |
/Fa | リスティング ファイルを作成。 リスティング ファイル名を設定。 |
/Fd | プログラム データベース ファイルの名前を変更。 |
/Fe | 実行可能ファイルの名前を変更。 |
/Fm | マップファイルを作成。 |
/Fo | オブジェクト ファイルを作成。 |
/Fp | プリコンパイル済みヘッダー ファイルの名前を指定。 |
/FR/Fr | ブラウザ ファイルを生成。 |
/Fx | 挿入されたコードをソース ファイルとマージ。 |
デバッグ | |
/GS | バッファのセキュリティをチェック。 |
/GZ | /RTC1 と同じです。 |
/homeparams |
関数の実行に入ったときに、レジスタで渡されたパラメータを、強制的にスタック内のその場所に書き込む。 x64 コンパイラ (ネイティブ コンパイルおよびクロス コンパイル) だけで使用されるコンパイラ オプション。 |
/RTC | ランタイム エラー チェックを有効にする。 |
/Wp64 | 64 ビット移植性の問題を検出。 |
/Yd | すべてのオブジェクト ファイルに、詳細なデバッグ情報を取り込み。 |
/Yl | デバッグ ライブラリの作成時に PCH の参照を挿入。 |
/Z7 | C 7.0 互換のデバッグ情報を生成。 |
/Zi | 詳細なデバッグ情報を生成。 |
/ZI | エディット コンティニュと互換性のあるプログラム データベースにデバッグ情報を含めます (x86 のみ)。 |
/Zx | デバッグ可能な最適化されたコードを生成。IPF クロス コンパイラまたは IPF ネイティブ コンパイラだけで使用できます。 |
プリプロセッサ | |
/AI | #using ディレクティブに渡されたファイル参照を解決するために検索するディレクトリを指定。 |
/C | プリプロセス時にコメントを保持。 |
/D | 定数とマクロを定義。 |
/E | プリプロセッサ出力を標準出力にコピー。 |
/EP | プリプロセッサ出力を標準出力にコピー。 |
/Fl | 指定したインクルード ファイルをプリプロセス。 |
/FU | #using ディレクティブに渡された場合と同じ方法でファイル名の使用を強制。 |
/I | ディレクトリ内でインクルード ファイルを検索。 |
/P | プリプロセッサ出力をファイルに書き込みます。 |
/U | 1 つの定義済みマクロを削除。 |
/u | すべての定義済みマクロを削除。 |
/X | 標準のインクルード ディレクトリを無視。 |
言語 | |
/openmp | ソース コードで #pragma omp を有効にする。 |
/vd | 隠し vtordisp クラス メンバの無効と有効を切り替え。 |
/vmb | メンバへのポインタに対して、最適なクラスを使用。 |
/vmg | メンバへのポインタに対して、ジェネリック クラスを使用。 |
/vmm | 多重継承を宣言。 |
/vms | 単一継承を宣言。 |
/vmv | 仮想継承を宣言。 |
/Za | 言語拡張機能を無効に。 |
/Zc | /Ze の標準動作を指定。 |
/Ze | 言語拡張機能を有効にする。 |
/Zg | 関数プロトタイプを生成。 |
/Zl | .obj ファイルから既定のライブラリ名を削除。 |
/Zpn | 構造体メンバをパック。 |
/Zs | 構文だけをチェック。 |
リンク(コンパイラで制御される LINKオプション) | |
/F | スタック サイズを設定。 |
/LD |
ダイナミック リンク ライブラリを作成。 /DLL を渡す。 |
/LDd |
デバッグ バージョンのダイナミック リンク ライブラリを作成。 /DLL を渡す。 |
/LN | MSIL モジュールを作成。 |
/link |
指定したオプションを LINK に渡す。 コマンド ラインの残りの部分を LINK に渡す。 |
/MD |
MSVCRT.lib を使用して、マルチスレッド DLL をコンパイルして作成。 「.obj 」ファイルに既定のライブラリ名を書き込む。 |
/MDd |
MSVCRTD.lib を使用して、デバッグ バージョンのマルチスレッド DLL をコンパイルして作成。 「.obj 」ファイルに既定のライブラリ名を書き込む。 シンボル _DEBUG を定義する。 |
/MT |
LIBCMT.lib を使用して、マルチスレッド実行可能ファイルをコンパイルして作成。 「.obj 」ファイルに既定のライブラリ名を書き込む。 |
/MTd |
LIBCMTD.lib を使用して、デバッグ バージョンのマルチスレッド実行可能ファイルをコンパイルして作成。 「.obj 」ファイルに既定のライブラリ名を書き込む。 シンボル _DEBUG を定義する。 |
拡張子 .c、.cxx、.cpp、または .def を除くすべてのファイル名 | LINK への入力としてファイル名を渡す。 |
filename.def | /DEF:filename.def で渡す。 |
/Fnumber | /STACK:number で渡す。 |
/Fdfilename | /PDB:filename で渡す。 |
/Fefilename | /OUT:filename で渡す。 |
/Fmfilename | /MAP:filename で渡す。 |
/Gy | パッケージ化された関数 (COMDAT) を作成し、関数レベルのリンクを有効にする。 |
/nologo | /NOLOGO を渡す。 |
/Zd | /DEBUG を渡す。 |
/Zi または /Z7 | /DEBUG を渡す。 |
/Zl | .obj ファイルから既定のライブラリ名を省く。 |
プリコンパイル済みヘッダー オプション | |
/Y- | 現在のビルドで、ほかのすべてのプリコンパイル済みヘッダー コンパイラ オプションを無視。 |
/Yc | プリコンパイル済みヘッダー ファイルを作成。 |
/Yd | すべてのオブジェクト ファイルに、詳細なデバッグ情報を取り込み。 |
/Yu | ビルド時にプリコンパイル済みヘッダー ファイルを使用。 |
その他 | |
/? | コンパイラ オプションのリストを出力。 |
@ | 応答ファイルを指定。 |
/analyze | コード分析を有効にする。 |
/c | リンクを行わないでコンパイル。 |
/doc | ドキュメト コメントを XML ファイルに出力。 |
/errorReport | 内部コンパイラ エラー (ICE) 情報を Visual C++ チームに直接提供。 |
/FC | 診断テキストで cl.exe に渡されるソース コード ファイルの完全パスを表示。 |
/H | 外部名 (パブリック名) の長さを制限。 |
/HELP | コンパイラ オプションのリストを出力。 |
/hotpatch | ホットパッチ可能なイメージを作成。 |
/J | 既定の char 型を変更。 |
/MP | 複数のソース ファイルを同時にビルド。 |
/nologo | 著作権情報を表示しません。 |
QIfist | 浮動小数点型から整数型への変換が必要なときには、ヘルパー関数 _ftol を呼び出しません (x86 のみ)。 |
/QIPF_B | B CPU ステップ実行のエラーに従って、予測できない結果を招く命令のシーケンスを生成しない (IPF のみ)。 |
/QIPF_C | C CPU ステップ実行のエラーに従って、予測できない結果を招く命令のシーケンスを生成しない (IPF のみ)。 |
/QIPF_fr32 | 上位の 96 ビットの浮動小数点レジスタを使用しません (IPF のみ)。 |
/QIPF_noPIC | 位置に依存するコードを持つイメージを生成します (IPF のみ)。 |
/QIPF_restrict_plabels | 実行時に関数を作成しないプログラムのパフォーマンスを向上します (IPF のみ)。 |
/showIncludes | コンパイル時にすべてのインクルード ファイルの一覧を表示。 |
/Tc/TC | C ソース ファイルを指定。 |
/Tp/TP | C++ ソース ファイルを指定。 |
/V | バージョン文字列を設定。 |
/Wall | 既定で無効にされた警告も含めてすべての警告を有効にする。 |
/W | 警告レベルを設定。 |
/w | すべての警告を無効に。 |
/WL | コマンド ラインから C++ ソース コードをコンパイルするときに、エラー メッセージと警告メッセージの 1 行診断を有効にする。 |
/Zm | プリコンパイル済みヘッダーのメモリ割り当て制限を指定。 |
実行コマンド |
make make ターゲット名 |
Visual C++の実行コマンド |
nmake nmake ターゲット名 |
オプション | 目的 |
---|---|
@ | 応答ファイルを指定。 |
/ALIGN | 各セクションの配置を指定。 |
/ALLOWBIND | DLL をバインドできないことを指定。 |
/ALLOWISOLATION | マニフェスト検索の動作を指定。 |
/ASSEMBLYDEBUG (DebuggableAttribute の追加) | DebuggableAttribute をマネージ イメージに追加。 |
/ASSEMBLYLINKRESOURCE | マネージ リソースへのリンクを作成。 |
/ASSEMBLYMODULE | MSIL (Microsoft Intermediate Language) モジュールをアセンブリにインポートする必要があることを指定。 |
/ASSEMBLYRESOURCE | マネージ リソース ファイルをアセンブリに埋め込みます。 |
/BASE | プログラムのベース アドレスを設定。 |
/CLRIMAGETYPE | CLR イメージの型 (IJW、pure、または safe) を設定。 |
/CLRSUPPORTLASTERROR | P/Invoke 機構を通じて呼び出された関数の最終エラー コードを保持。 |
/CLRTHREADATTRIBUTE | CLR プログラムのエントリ ポイントに適用するスレッド処理属性を指定。 |
/CLRUNMANAGEDCODECHECK | /CLRUNMANAGEDCODECHECK は、マネージ コードからネイティブ DLL への呼び出しを行う、リンカによって生成された PInvoke スタブに、SuppressUnmanagedCodeSecurity 属性を適用するかどうかを指定。 |
/DEBUG | デバッグ情報を作成。 |
/DEF | モジュール定義 (.def) ファイルをリンカに渡。 |
/DEFAULTLIB | 外部参照を解決するときに、指定したライブラリを検索。 |
/DELAY | DLL の遅延読み込みを制御。 |
/DELAYLOAD | 指定した DLL に遅延読み込みを発生させます。 |
/DELAYSIGN | アセンブリに部分署名。 |
/DLL | DLL をビルド。 |
/DRIVER | Windows NT カーネル モード ドライバを作成。 |
/DYNAMICBASE | Windows Vista の ASLR (Address Space Layout Randomization) 機能を使用してロード時にランダムに再ベースできる実行可能イメージを生成するかどうかを指定。 |
/ENTRY | 開始アドレスを設定。 |
/errorReport | 内部リンカ エラーを Microsoft に報告。 |
/EXPORT | 関数をエクスポート。 |
/FIXED | 指定のベース アドレスだけに読み込まれるプログラムを作成。 |
/FORCE | 未解決または複数定義のシンボルがある場合でも、リンクを強制的に終了。 |
/FUNCTIONPADMIN | ホットパッチ可能なイメージを作成。 |
/HEAP | ヒープ サイズをバイト単位で設定。 |
/IDLOUT | .idl ファイル名およびその他の MIDL の出力ファイル名を指定。 |
/IGNOREIDL | .idl ファイル内に属性情報を挿入しません。 |
/IMPLIB | 既定のインポート ライブラリ名をオーバーライド。 |
/INCLUDE | シンボルを明示的に参照。 |
/INCREMENTAL | インクリメンタル リンクの処理方法を制御。 |
/KEYCONTAINER | アセンブリに署名するためのキー コンテナを指定。 |
/KEYFILE | アセンブリに署名するためのキーまたはキー ペアを指定。 |
/LARGEADDRESSAWARE | アプリケーションが 2 GB を超えるアドレスをサポートしていることをコンパイラに指定。 |
/LIBPATH | ユーザーが環境ライブラリ パスをオーバーライドできるように。 |
/LTCG | リンク時コード生成を指定。 |
/MACHINE | ターゲット プラットフォームを指定。 |
/MANIFEST | side-by-side マニフェスト ファイルを作成。 |
/MANIFESTDEPENDENCY | マニフェスト ファイルの <dependentAssembly> セクションを指定。 |
/MANIFESTFILE (マニフェスト ファイルに名前を付ける) | マニフェスト ファイルの既定の名前を変更。 |
/MANIFESTUAC | ユーザー アカウント制御 (UAC) 情報をプログラム マニフェストに組み込むかどうかを指定。 |
/MAP | マップファイルを作成。 |
/MAPINFO | 指定した情報をマップ ファイルに格納。 |
/MERGE | セクションを結合。 |
/MIDL | MIDL コマンド ライン オプションを指定。 |
/NOASSEMBLY | .NET Framework アセンブリを作成しません。 |
/NODEFAULTLIB | 外部参照を解決するときに、すべてのまたは指定した既定のライブラリを無視。 |
/NOENTRY | リソースだけの DLL を作成。 |
/NOLOGO | 開始メッセージを表示しません。 |
/NXCOMPAT | Windows データ実行防止機能との互換性がテスト済みとして実行可能ファイルをマーク。 |
/OPT | LINK の最適化を制御。 |
/ORDER | 指定された順序で COMDAT をイメージに取り込みます。 |
/OUT | 出力ファイル名を指定。 |
/PDB | プログラム データベース (PDB) ファイルを作成。 |
/PDBSTRIPPED | プログラム データベース (PDB) ファイルの作成時にプライベート シンボルを含めません。 |
/PGD | ガイド付き最適化のプロファイルの .pgd ファイルを指定。 |
/PROFILE | パフォーマンス ツール プロファイラで使用できる出力ファイルを作成。 |
/RELEASE | .exe ヘッダーにチェックサムを設定。 |
/SAFESEH | 安全な例外ハンドラのテーブルがイメージに含まれるように指定。 |
/SECTION | セクションの属性をオーバーライド。 |
/STACK | スタック サイズをバイト単位で設定。 |
/STUB | MS-DOS スタブ プログラムを Win32 プログラムにアタッチ。 |
/SUBSYSTEM | オペレーティング システムに対して、.exe ファイルの実行方法を指定。 |
/SWAPRUN | リンカ出力をスワップ ファイルにコピーしてから実行。 |
/TLBID | リンカにより生成されたタイプ ライブラリのリソース ID を指定できます。 |
/TLBOUT | .tlb ファイル名およびその他の MIDL の出力ファイル名を指定。 |
/TSAWARE | ターミナル サーバーでの実行専用のアプリケーションを作成。 |
/VERBOSE | リンカの進行状況メッセージを出力。 |
/VERSION | バージョン番号を割り当てます。 |
/WX | リンカ警告をエラーとして扱います。 |