連結器選項

LINK.exe 會連結通用物件檔格式 (COFF) 物件檔案和連結庫,以建立可執行檔 (EXE) 檔案或動態連結庫 (DLL)。

下表列出 LINK.exe 的選項。 如需 LINK 的詳細資訊,請參閱:

在命令行上,鏈接器選項不會區分大小寫;例如, /base/BASE 表示相同的專案。 如需有關如何命令列或在 Visual Studio 中指定每個選項的詳細資訊,請參閱該選項的文件。

您可以使用 comment pragma 來指定某些連結器選項。

依字母順序列出的連結器選項

選項 目的
@ 指定回應檔。
/ALIGN 指定每一個區段的對齊情況。
/ALLOWBIND 指定 DLL 無法繫結。
/ALLOWISOLATION 指定資訊清單查閱的行為。
/APPCONTAINER 指定應用程式是否必須在 appcontainer 處理序環境中執行。
/ARM64XFUNCTIONPADMINX64 指定 ARM64X 映射中 x64 函式之間的最小填補位元組數目。17.8
/ASSEMBLYDEBUG DebuggableAttribute 加入至 Managed 映像檔。
/ASSEMBLYLINKRESOURCE 建立與 Managed 資源的連結。
/ASSEMBLYMODULE 指定 Microsoft 中繼語言 (MSIL) 模組應該匯入至組件。
/ASSEMBLYRESOURCE 將 Managed 資源內嵌至組件中。
/BASE 設定程式的基底位址。
/CETCOMPAT 將二進位檔標示為 CET 陰影堆疊相容。
/CGTHREADS 設定在指定連結時間程式碼產生時,要用於最佳化及程式碼產生的 cl.exe 執行緒數目。
/CLRIMAGETYPE 設定 CLR 映像的類型 (IJW、純或安全)。
/CLRSUPPORTLASTERROR 保留透過 P/Invoke 機制呼叫之函式的最後一個錯誤碼。
/CLRTHREADATTRIBUTE 指定要套用至 CLR 程式進入點的 threading 屬性。
/CLRUNMANAGEDCODECHECK 指定連結器是否將 屬性套用 SuppressUnmanagedCodeSecurity 至連結器產生的 P/Invoke 存根,以從 Managed 程式代碼呼叫到原生 DLL。
/DEBUG 建立偵錯資訊。
/DEBUGTYPE 指定要包含在偵錯資訊的資料。
/DEF 將模組定義 (.def) 檔傳遞至連結器。
/DEFAULTLIB 解析外部參考時,搜尋指定的程式庫。
/DELAY 控制 DLL 的延遲載入。
/DELAYLOAD 引起指定之 DLL 的延遲載入。
/DELAYSIGN 部分簽署組件。
/DEPENDENTLOADFLAG 設定相依 DLL 載入的預設旗標。
/DLL 建置 DLL。
/DRIVER 建立核心模式驅動程式。
/DYNAMICBASE 指定是否要使用位址空間配置隨機化 (ASLR) 功能來產生在載入時間重新設定基底的可執行檔映像。
/ENTRY 設定開始位址。
/ERRORREPORT 已取代。 錯誤報告是由 Windows 錯誤報告 (WER) 設定所控制。
/EXPORT 匯出函式。
/FILEALIGN 對齊指定值之倍數的輸出檔內的區段。
/FIXED 建立僅可在其慣用基底位址載入的程式。
/FORCE 強制連結完成,即使存在未解析的符號或符號定義多次也一樣。
/FUNCTIONPADMIN 建立可熱修補的映像檔。
/GENPROFILE, /FASTGENPROFILE 這兩個選項 .pgd 都指定連結器產生檔案,以支援配置檔引導優化 (PGO)。 /GENPROFILE 和 /FASTGENPROFILE 使用不同的預設參數。
/GUARD 啟用「控制流程防護」防護。
/HEAP 設定堆積的大小 (以位元組為單位)。
/HIGHENTROPYVA 指定支援高熵 64 位元位址空間配置隨機載入 (ASLR)。
/IDLOUT 指定檔案的名稱 .idl 和其他 MIDL 輸出檔。
/IGNORE 隱藏指定連結器警告的輸出。
/IGNOREIDL 防止將屬性資訊處理到 .idl 檔案中。
/ILK 覆寫預設累加資料庫檔名。
/IMPLIB 覆寫預設匯入程式庫名稱。
/INCLUDE 強制執行符號參考。
/INCREMENTAL 控制累加連結。
/INFERASANLIBS 使用推斷的清理工具連結庫。
/INTEGRITYCHECK 指定模組在載入時需要進行簽章檢查。
/KERNEL 建立核心模式二進位檔。
/KEYCONTAINER 指定用於簽署組件的金鑰容器。
/KEYFILE 指定用於簽署組件的金鑰或金鑰組。
/LARGEADDRESSAWARE 告知編譯程式應用程式支援大於 2 GB 的位址
/LIBPATH 指定要在環境程式庫路徑之前搜尋的路徑。
/LINKREPRO 指定要在 中產生連結重現成品的路徑。
/LINKREPROTARGET 只有在產生指定的目標時,才會產生連結重現。16.1
/LTCG 指定連結時產生程式碼。
/MACHINE 指定目標平台。
/MANIFEST 建立並存資訊清單檔,並選擇性地將其內嵌於二進位檔中。
/MANIFESTDEPENDENCY 指定 <指令清單檔中的 dependentAssembly> 區段。
/MANIFESTFILE 變更資訊清單檔的預設名稱。
/MANIFESTINPUT 指定連結器的資訊清單輸入檔,以在二進位檔中處理並內嵌於二進位檔中。 您可以多次使用此選項,以指定多個資訊清單輸入檔。
/MANIFESTUAC 指定使用者帳戶控制 (UAC) 資訊是否內嵌於程式資訊清單中。
/MAP 建立對應檔 (Mapfile)。
/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 Stub 程式附加至 Win32 程式。
/SUBSYSTEM 告知操作系統如何執行 .exe 檔案。
/SWAPRUN 告知作業系統在執行之前,將連結器輸出複製到交換檔。
/TIME 輸出連結器傳遞計時資訊。
/TLBID 指定連結器產生類型程式庫的資源 ID。
/TLBOUT 指定檔案的名稱 .tlb 和其他 MIDL 輸出檔。
/TSAWARE 建立專門設計用來在終端伺服器下執行的應用程式。
/USEPROFILE 使用配置檔引導優化定型數據來建立優化的映像。
/VERBOSE 列印連結器進度訊息。
/VERSION 指派版本號碼。
/WHOLEARCHIVE 包含來自指定靜態庫的每個物件檔案。
/WINMD 啟用 Windows 執行階段中繼資料檔的產生。
/WINMDFILE 指定連結器選項所產生的 /WINMD Windows 執行階段 元資料 (winmd) 輸出檔檔名。
/WINMDKEYFILE 指定用於簽署 Windows 執行階段中繼資料的金鑰或金鑰組。
/WINMDKEYCONTAINER 指定用於簽署 Windows 中繼資料檔的金鑰容器。
/WINMDDELAYSIGN 部分簽署 Windows 執行階段 元資料 (.winmd) 檔案,方法是將公鑰放在 winmd 檔案中。
/WX 將連結器警告視為錯誤。

16.1 此選項可從Visual Studio 2019 16.1版開始提供。
17.8 從 Visual Studio 2022 17.8 版開始提供此選項。

另請參閱

C/C++ 建置參考
MSVC 連結器參考