リンカー オプション

LINK.exe は、共通オブジェクト ファイル形式 (COFF) オブジェクト ファイルとライブラリをリンクして、実行可能ファイル (EXE) ファイルまたはダイナミック リンク ライブラリ (DLL) を作成します。

LINK.exe のオプションの一覧を次の表に示します。 LINK の詳細については、下記を参照してください。

コマンド ラインでは、リンカー オプションの大文字と小文字は区別されません。たとえば、/base/BASE は、同じ指定を意味します。 コマンド ラインまたは Visual Studio で各オプションを指定する方法の詳細については、そのオプションのドキュメントを参照してください。

プラグマを comment 使用して、いくつかのリンカー オプションを指定できます。

アルファベット順のリンカー オプション

オプション 目的
@ 応答ファイルを指定します。
/ALIGN 各セクションのアラインメントを指定します。
/ALLOWBIND DLL をバインドできないことを指定します。
/ALLOWISOLATION マニフェスト検索の動作を指定します。
/APPCONTAINER アプリケーションが appcontainer プロセス環境内で実行される必要があるかどうかを指定します。
/ARM64XFUNCTIONPADMINX64 ARM64X イメージの x64 関数間のパディングの最小バイト数を指定します。17.8
/ASSEMBLYDEBUG DebuggableAttribute をマネージド イメージに追加します。
/ASSEMBLYLINKRESOURCE マネージド リソースへのリンクを作成します。
/ASSEMBLYMODULE MSIL (Microsoft Intermediate Language) モジュールをアセンブリにインポートする必要があることを指定します。
/ASSEMBLYRESOURCE マネージド リソース ファイルをアセンブリに埋め込みます。
/BASE プログラムのベース アドレスを設定します。
/CETCOMPAT バイナリを CET シャドウ スタック互換としてマークします。
/CGTHREADS リンク時のコード生成を指定するときに、最適化およびコード生成に使用する cl.exe スレッド数を設定します。
/CLRIMAGETYPE CLR イメージの種類 (IJW、純粋、または安全) を設定します。
/CLRSUPPORTLASTERROR P/Invoke 機構を通じて呼び出された関数の最終エラー コードを保持します。
/CLRTHREADATTRIBUTE CLR プログラムのエントリ ポイントに適用するスレッド処理属性を指定します。
/CLRUNMANAGEDCODECHECK リンカーが、マネージド コードからネイティブ DLL に呼び出すリンカーによって生成された P/Invoke スタブに属性を適用 SuppressUnmanagedCodeSecurity するかどうかを指定します。
/DEBUG デバッグ情報を作成します。
/DEBUGTYPE デバッグ情報に含めるデータを指定します。
/DEF モジュール定義 (.def) ファイルをリンカーに渡します。
/DEFAULTLIB 外部参照を解決するときに、指定したライブラリを検索します。
/DELAY DLL の遅延読み込みを制御します。
/DELAYLOAD 指定した DLL に遅延読み込みを発生させます。
/DELAYSIGN アセンブリに部分署名します。
/DEPENDENTLOADFLAG 依存 DLL の読み込みに既定のフラグを設定します。
/DLL DLL をビルドします。
/DRIVER カーネル モード ドライバーを作成します。
/DYNAMICBASE Address Space Layout Randomization (ASLR) 機能を使用して読み込み時にリベースされる実行可能イメージを生成するかどうかを指定します。
/ENTRY 開始アドレスを設定します。
/ERRORREPORT 非推奨。 エラー報告は Windows エラー報告 (WER) の設定によって制御されます。
/EXPORT 関数をエクスポートします。
/FILEALIGN 指定された値の倍数で出力ファイル内のセクションを配置します。
/FIXED 指定のベース アドレスだけに読み込まれるプログラムを作成します。
/FORCE 未解決のシンボルまたは複数定義のシンボルがある場合でも、リンクを強制的に終了します。
/FUNCTIONPADMIN ホット パッチ可能なイメージを作成します。
/GENPROFILE, /FASTGENPROFILE これらのオプションは、ガイド付き最適化のプロファイル (PGO) をサポートするために、どちらもリンカーによる .pgd ファイルの生成を指定します。 /GENPROFILE と /FASTGENPROFILE は、それぞれに異なる既定のパラメーターを使用します。
/GUARD 制御フロー ガードによる保護を有効にします。
/HEAP ヒープ サイズをバイト単位で設定します。
/HIGHENTROPYVA 高エントロピの 64 ビット ASLR (Address Space Layout Randomization) のサポートを指定します。
/IDLOUT .idl ファイル名およびその他の MIDL の出力ファイル名を指定します。
/IGNORE 指定されたリンカー警告の出力を抑制します。
/IGNOREIDL .idl ファイル内に属性情報を挿入しません。
/ILK 既定の増分データベース ファイル名をオーバーライドします。
/IMPLIB 既定のインポート ライブラリ名をオーバーライドします。
/INCLUDE シンボルを明示的に参照します。
/INCREMENTAL インクリメンタル リンクの処理方法を制御します。
/INFERASANLIBS 推論されたサニタイザー ライブラリを使用します。
/INTEGRITYCHECK モジュールが読み込み時に署名の確認を要求することを指定します。
/KERNEL カーネル モード バイナリを作成します。
/KEYCONTAINER アセンブリに署名するためのキー コンテナーを指定します。
/KEYFILE アセンブリに署名するキーまたはキー ペアを指定します。
/LARGEADDRESSAWARE アプリケーションが 2 ギガバイトを超えるアドレスをサポートしていることをコンパイラに伝えます
/LIBPATH 環境ライブラリ パスの前に検索するパスを指定します。
/LINKREPRO リンク再現コード成果物を生成するパスを指定します。
/LINKREPROTARGET 指定したターゲットを生成するときにのみ、リンク再現コードを生成します。16.1
/LTCG リンク時のコード生成を指定します。
/MACHINE ターゲット プラットフォームを指定します。
/MANIFEST side-by-side マニフェスト ファイルを作成し、バイナリに埋め込むことができるようにします。
/MANIFESTDEPENDENCY マニフェスト ファイルの <dependentAssembly> セクションを指定します。
/MANIFESTFILE マニフェスト ファイルの既定の名前を変更します。
/MANIFESTINPUT リンカーが処理を行い、バイナリに埋め込むための、マニフェスト入力ファイルを指定します。 このオプションを複数回使用して、複数のマニフェストの入力ファイルを指定できます。
/MANIFESTUAC ユーザー アカウント制御 (UAC) 情報をプログラム マニフェストに組み込むかどうかを指定します。
/MAP マップファイルを作成します。
/MAPINFO 指定した情報をマップ ファイルに格納します。
/MERGE セクションを結合します。
/MIDL MIDL コマンド ライン オプションを指定します。
/NATVIS Natvis ファイルからプログラム データベース (PDB) にデバッガー ビジュアライザーを追加します。
/NOASSEMBLY .NET Framework アセンブリを作成しません。
/NODEFAULTLIB 外部参照を解決するときに、すべてのまたは指定した既定のライブラリを無視します。
/NOENTRY リソースだけの DLL を作成します。
/NOFUNCTIONPADSECTION 指定したセクションの関数の関数埋め込みを無効にします。17.8
/NOLOGO 開始メッセージを表示しません。
/NXCOMPAT Windows データ実行防止機能との互換性が確認済みとして実行可能ファイルをマークします。
/OPT LINK の最適化を制御します。
/ORDER 指定された順序で COMDAT をイメージに取り込みます。
/OUT 出力ファイル名を指定します。
/PDB PDB ファイルを作成します。
/PDBALTPATH 別の場所を使用して PDB ファイルを保存します。
/PDBSTRIPPED プライベート シンボルがない PDB ファイルを作成します。
/PGD ガイド付き最適化のプロファイル用の .pgd ファイルを指定します。
/POGOSAFEMODE 旧形式 スレッドセーフの PGO でインストルメント化されたビルドを作成します。
/PROFILE パフォーマンス ツール プロファイラーで使用できる出力ファイルを作成します。
/RELEASE .exe ヘッダーにチェックサムを設定します。
/SAFESEH 安全な例外ハンドラーのテーブルがイメージに含まれるように指定します。
/SECTION セクションの属性をオーバーライドします。
/SOURCELINK PDB に追加する SourceLink ファイルを指定します。
/STACK スタック サイズをバイト単位で設定します。
/STUB MS-DOS スタブ プログラムを Win32 プログラムにアタッチします。
/SUBSYSTEM オペレーティング システムに対して、.exe ファイルの実行方法を指定します。
/SWAPRUN リンカー出力をスワップ ファイルにコピーしてから実行します。
/TIME リンカー パスのタイミング情報を出力します。
/TLBID リンカーによって生成されたタイプ ライブラリのリソース ID を指定します。
/TLBOUT .tlb ファイル名およびその他の MIDL の出力ファイル名を指定します。
/TSAWARE ターミナル サーバーでの実行専用のアプリケーションを作成します。
/USEPROFILE ガイド付き最適化のプロファイルのトレーニング データを使用して、最適化されたイメージを作成します。
/VERBOSE リンカーの進行状況メッセージを出力します。
/VERSION バージョン番号を割り当てます。
/WHOLEARCHIVE 指定した静的ライブラリのすべてのオブジェクト ファイルをインクルードします。
/WINMD Windows ランタイム メタデータ ファイルの生成を有効にします。
/WINMDFILE リンカー オプションによって生成されるWindows ランタイム メタデータ (winmd) 出力ファイルのファイル名を/WINMD指定します。
/WINMDKEYFILE Windows ランタイム メタデータに署名するキーまたはキー ペアを指定します。
/WINMDKEYCONTAINER Windows メタデータ ファイルに署名するキー コンテナーを指定します。
/WINMDDELAYSIGN winmd ファイルに公開キーを配置して、Windows ランタイム メタデータ (.winmd) ファイルに部分的に署名します。
/WX リンカー警告をエラーとして扱います。

16.1 このオプションは、Visual Studio 2019 バージョン 16.1 以降で使用できます。
17.8 このオプションは、Visual Studio 2022 バージョン 17.8 以降で使用できます。

関連項目

C/C++ ビルドのリファレンス
MSVC リンカーのリファレンス