共用方式為


連結器屬性頁

下列屬性位於 [專案 > 屬性組態屬性 >> ] 連結器 底下。 如需連結器的詳細資訊,請參閱 CL 叫用連結器和 連結器選項

一般屬性頁

輸出檔案

選項 /OUT 會覆寫連結器所建立之程式的預設名稱和位置。

顯示進度

列印連結器進度訊息

Choices

  • 未設定 - 無詳細資訊。
  • 顯示所有進度訊息 - 顯示所有進度訊息。
  • 針對 [ 已搜尋的程式庫 ] - 顯示進度訊息,指出只搜尋的程式庫。
  • 關於優化連結期間的 COMDAT 折迭 - 顯示優化連結 期間 COMDAT 折迭的相關資訊。
  • 關於優化連結 期間移除的資料 - 顯示優化連結期間所移除之函式和資料的相關資訊。
  • 關於與 SEH 不相容的模組 - 顯示與保管庫例外狀況處理不相容的模組相關資訊。
  • 關於與 Managed 程式碼 相關的連結器活動 - 顯示與 Managed 程式碼相關的連結器活動相關資訊。

版本

選項 /VERSION 會指示連結器將版本號碼放在 或 .dll 檔案的 .exe 標頭中。 使用 DUMPBIN /HEADERS 查看 的 OPTIONAL HEADER VALUES 映射版本欄位,以查看 的效果 /VERSION

啟用累加連結

啟用累加連結。 (/INCREMENTAL, /INCREMENTAL:NO)

隱藏啟動橫幅

此選項 /NOLOGO 可防止顯示著作權訊息和版本號碼。

忽略匯入程式庫

這個屬性會告知連結器不要將此組建所產生的任何 .lib 輸出連結至任何相依專案。 它可讓專案系統處理 .dll 建置時不會產生檔案的 .lib 檔案。 如果專案相依于另一個產生 DLL 的專案,專案系統會自動連結 .lib 該子專案所產生的檔案。 產生 COM DLL 或僅限資源 DLL 的專案可能不需要此屬性,因為這些 DLL 沒有任何有意義的匯出。 如果 DLL 沒有匯出,連結器就不會產生 .lib 檔案。 如果沒有匯出 .lib 檔案,而且專案系統會告知連結器連結遺漏的 DLL,則連結會失敗。 請使用 [忽略匯入程式庫] 屬性來解決此問題。 當設定為 [ ] 時,專案系統會忽略檔案是否存在 .lib ,並導致任何相依于此專案的專案不會與不存在 .lib 的檔案連結。

若要以程式設計方式存取此屬性,請參閱 IgnoreImportLibrary

登錄輸出

在建置輸出上執行 regsvr32.exe /s $(TargetPath) ,這只適用于 .dll 專案。 對於 .exe 專案,會忽略這個屬性。 若要註冊 .exe 輸出,請在組態上設定後置事件,以執行註冊 .exe 檔案一律需要的自訂註冊。

若要以程式設計方式存取此屬性,請參閱 RegisterOutput

個別使用者重新導向

在 Visual Studio 中註冊傳統上已在 (HKCR) 中 HKEY_CLASSES_ROOT 完成。 使用 Windows Vista 和更新版本的作業系統,若要存取 HKCR 您必須以提升權限模式執行 Visual Studio。 開發人員不一定會想要以提升許可權模式執行,但仍必須搭配註冊使用。 每個使用者重新導向可讓您註冊,而不需要以提升許可權模式執行。

每個使用者重新導向會強制將任何寫入 HKCR 重新導向至 HKEY_CURRENT_USER (HKCU)。 如果關閉每個使用者重新導向,它可能會在程式嘗試寫入 HKCR 時導致專案建置錯誤 PRJ0050

其他程式庫目錄

允許使用者覆寫環境的程式庫路徑。 (/LIBPATH:folder)

指定是否要連結 .lib 相依專案所產生的檔案。 一般而言,您想要在檔案中 .lib 連結,但某些 DLL 可能不是這種情況。

您也可以藉由提供檔案名和相對路徑來指定 .obj 檔案,例如 ..\..\MyLibProject\MyObjFile.obj 。 例如, pch.h 如果檔案的 .obj 原始程式碼具有 #include 先行編譯標頭的 ,則 pch.obj 檔案位於與 MyObjFile.obj 相同的資料夾中。 您也必須新增 pch.obj 為額外的相依性。

使用程式庫相依性輸入

指定在連結專案相依性程式庫輸出時,是否要使用程式庫工具的輸入,而不是程式庫檔案本身。 在大型專案中,當相依專案產生 .lib 檔案時,會停用累加連結。 如果有許多相依專案會產生 .lib 檔案,建置應用程式可能需要很長的時間。 當此屬性設定為 [是 ] 時,專案系統會在相依專案所產生的檔案 .lib.obj 連結專案系統,以啟用累加連結。

如需如何存取 一般 連結器屬性頁的詳細資訊,請參閱 設定編譯器和建置屬性

指定連結器是否應該顯示進度指示器,顯示連結完成百分比。 預設值為不會顯示此狀態資訊。 (/LTCG:STATUS|LTCG:NOSTATUS)

防止 DLL 系結

/ALLOWBIND:NO 會設定 DLL 標頭中的位,指出不允許系 Bind.exe 結映射。 如果 DLL 已數位簽署,您便可能不想要繫結 DLL (繫結會使簽章無效)。

將連結器警告視為錯誤

/WX 如果連結器產生警告,則不會產生任何輸出檔案。

強制檔案輸出

選項 /FORCE 會告知連結器建立 .exe 檔案或 DLL,即使參考符號但未定義 (), 或已定義多次 ( UNRESOLVEDMULTIPLE )。 它可能會建立無效 .exe 的檔案。

Choices

  • 啟用 - /FORCE 時沒有引數表示 /FORCE:MULTIPLE 和 。 /FORCE:UNRESOLVED
  • 相乘定義的符號 - 即使 LINK 找到一個以上的符號定義,使用 /FORCE:MULTIPLE 來建立輸出檔案。
  • 僅限 未定義的符號 - 使用 /FORCE:UNRESOLVED 來建立輸出檔案,不論 LINK 是否找到未定義的符號。 /FORCE:UNRESOLVED 如果無法解析進入點符號,則會忽略 。

建立熱修補映射

準備映像進行 Hotpatch。

Choices

  • 已啟用 - 準備映射以進行熱修補。
  • 僅限 X86 映射 - 準備 X86 映射以進行熱修補。
  • 僅限 X64 映射 - 準備 X64 映射以進行熱修補。
  • 僅限 Itanium 映射 - 準備 Itanium 映射以進行熱修補。

指定區段屬性

選項 /SECTION 會變更區段的屬性,覆寫編譯區段的檔案時 .obj 所設定的屬性。

輸入屬性頁

其他相依性

指定要新增至連結命令列的額外相依性專案,例如 kernel32.lib

忽略所有預設程式庫

選項 /NODEFAULTLIB 會指示連結器從解析外部參考時所搜尋的程式庫清單中移除一或多個預設程式庫。

忽略特定的預設程式庫

指定要忽略的一或多個預設程式庫名稱。 使用分號分隔多個程式庫。 (/NODEFAULTLIB:[name, name, ...])

模組定義檔

選項 /DEF 會將模組定義檔案 ( .def ) 傳遞給連結器。 只有一個 .def 檔案可以指定給 LINK。

將模組新增至元件

選項 /ASSEMBLYMODULE 可讓您將模組參考新增至元件。 模組中的類型資訊不適用於新增模組參考的元件程式。 不過,模組中的類型資訊將可供參考元件的任何程式使用。

內嵌受控資源檔

/ASSEMBLYRESOURCE 在輸出檔中內嵌資源檔。

強制符號參考

選項 /INCLUDE 會告知連結器將指定的符號新增至符號資料表。

延遲載入的 DLL

選項 /DELAYLOAD 會導致 DLL 載入延遲。 dll 名稱會指定要延遲載入的 DLL。

選項 /ASSEMBLYLINKRESOURCE 會在輸出檔中建立 .NET Framework 資源的連結。 連結器不會將資源檔放在輸出檔中。

資訊清單檔屬性頁

產生資訊清單

/MANIFEST 指定連結器應該建立並存資訊清單檔案。

資訊清單檔案

/MANIFESTFILE 可讓您變更資訊清單檔案的預設名稱。 資訊清單檔的預設名稱是附加的 .manifest 檔案名。

其他資訊清單相依性

/MANIFESTDEPENDENCY 可讓您指定將放在資訊清單檔相依性區段中的屬性。

允許隔離

指定資訊清單查閱的行為。 (/ALLOWISOLATION:NO)

啟用使用者帳戶控制 (UAC)

指定是否啟用使用者帳戶控制。 (/MANIFESTUAC, /MANIFESTUAC:NO)

UAC 執行層級

使用使用者帳戶控制執行時,指定應用程式所要求的執行層級。 (/MANIFESTUAC:level=[value])

Choices

  • asInvoker - UAC 執行層級:作為叫用者。
  • highestAvailable - UAC 執行層級:最高可用。
  • require管理員istrator - UAC 執行層級:需要系統管理員。

UAC 略過 UI 保護

指定是否要略過桌面上其他視窗的使用者介面保護層級。 將此屬性設定為 [是] 僅適用于協助工具應用程式。 (/MANIFESTUAC:uiAccess=[true | false])

偵錯屬性頁

產生偵錯資訊

此選項可讓您建立檔案或 DLL 的偵錯資訊 .exe

Choices

  • - 不會產生偵錯資訊。
  • 產生偵錯資訊 - 建立完整的程式資料庫 (PDB) 以散發至 Microsoft 符號伺服器。
  • 產生針對更快速連結 優化的偵錯資訊 - 產生適合快速編輯連結偵錯週期的程式資料庫 (PDB)。
  • 產生針對共用和發佈 優化的偵錯資訊 - 產生適用于共用編輯連結-偵錯迴圈的程式資料庫(PDB)。

產生程式資料庫檔案

根據預設,當指定 時 /DEBUG ,連結器會建立程式資料庫 (PDB), 以保存偵錯資訊。 PDB 的預設檔案名具有程式的基底名稱和副檔名 .pdb

等量私人符號

/PDBSTRIPPED當您使用任何產生 PDB 檔案的編譯器或連結器選項來建置程式映射時,此選項會建立第二個程式資料庫 (PDB) 檔案。 /DEBUG/Z7/Zd/Zi

產生對應檔案

選項 /MAP 會告知連結器建立地圖檔。

對應檔案名稱

地圖檔的使用者指定名稱。 它會取代預設名稱。

地圖匯出

選項 /MAPINFO 會告知連結器在 mapfile 中包含指定的資訊,如果您指定 選項,就會建立該 /MAP 資訊。 EXPORTS 告知連結器包含匯出的函式。

可偵錯的元件

/ASSEMBLYDEBUG 發出 DebuggableAttribute 具有偵錯資訊追蹤的屬性,並停用 JIT 優化。

系統屬性頁

SubSystem

選項 /SUBSYSTEM 會告知作業系統如何執行 .exe 檔案。 子系統的選擇會影響連結器將選擇的進入點符號(或進入點函式)。

Choices

  • 未設定 - 未設定子系統。
  • 主控台 - Win32 字元模式應用程式。 主控台應用程式是由作業系統提供的主控台。 如果 mainwmain 已定義, CONSOLE 則為預設值。
  • Windows - 應用程式不需要主控台,可能是因為它會建立自己的視窗來與使用者互動。 如果 WinMainwWinMain 已定義, WINDOWS 則為預設值。
  • 原生 - 適用于 Windows NT 的設備磁碟機。 如果 /DRIVER:WDM 指定 , NATIVE 則為預設值。
  • EFI 應用程式 - EFI 應用程式。
  • EFI 開機服務驅動程式 - EFI 開機服務驅動程式。
  • EFI ROM - EFI ROM。
  • EFI 執行時間 - EFI 執行時間。
  • POSIX - 在 Windows NT 中使用 POSIX 子系統執行的應用程式。

最低必要版本

指定子系統的最低必要版本。 引數為範圍從 0 到 65535 的十進位數字。

堆積保留大小

指定虛擬記憶體中的堆積配置大小總計。 預設值為 1 MB。 (/HEAP:reserve)

堆積認可大小

指定實體記憶體中的堆積配置大小總計。 預設值為 4 KB。 ( [/HEAP:reserve,commit ](heap-set-heap-size.md))

堆疊保留大小

指定虛擬記憶體中的堆疊配置大小總和。 預設值為 1 MB。 (/STACK:reserve)

堆疊認可大小

指定實體記憶體中的堆疊配置大小總計。 預設值為 4 KB。 (/STACK:reserve,commit)

啟用大型位址

選項 /LARGEADDRESSAWARE 會告知連結器應用程式可以處理大於 2 GB 的位址。 根據預設, /LARGEADDRESSAWARE:NO 如果未 /LARGEADDRESSAWARE 在連結器行上指定 ,則會啟用 。

Terminal Server

選項會在 /TSAWARE 程式影像選擇性標頭的 欄位中設定旗標 IMAGE_OPTIONAL_HEADERDllCharacteristics 。 設定此旗標時,終端機伺服器不會對應用程式進行特定變更。

從 CD 交換執行

選項 /SWAPRUN 會指示作業系統先將連結器輸出複製到交換檔,然後從該處執行映射。 此選項是 Windows NT 4.0(及更新版本)功能。 指定 時 CD ,作業系統會將卸載式磁片上的映射複製到頁面檔案,然後載入該映射。

從網路交換執行

選項 /SWAPRUN 會指示作業系統先將連結器輸出複製到交換檔,然後從該處執行映射。 此選項是 Windows NT 4.0(及更新版本)功能。 如果 NET 已指定,作業系統會先將二進位映射從網路複製到交換檔,然後從該處載入它。 此選項適用于透過網路執行應用程式。

驅動程式

/DRIVER使用連結器選項來建置 Windows NT 核心模式驅動程式。

Choices

  • 未設定 - 預設驅動程式設定。
  • 驅動程式 - 驅動程式
  • UP 只會 - /DRIVER:UPONLY 讓連結器將位新增 IMAGE_FILE_UP_SYSTEM_ONLY 至輸出標頭中的特性,以指定它是單處理器 (UP) 驅動程式。 作業系統會拒絕在多處理器 (MP) 系統上載入 UP 驅動程式。
  • WDM - /DRIVER:WDM 會導致連結器在選擇性標頭的 DllCharacteristics 欄位中設定 IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 位。

優化屬性頁

參考資料

/OPT:REF 會排除從未參考的函式和/或資料,同時 /OPT:NOREF 保留從未參考的函式和/或資料。

啟用 COMDAT 摺疊

使用 /OPT:ICF[=iterations] 來執行相同的 COMDAT 折迭。

函式順序

選項 /ORDER 會指示 LINK 將特定 COMDAT 放入預先決定的順序,以優化您的程式。 LINK 會將函式置於影像中每個區段的指定順序中。

設定檔引導資料庫

指定 .pgd 設定檔引導式優化檔案。 (/PGD)

指定連結時產生程式碼。 (/LTCG)

Choices

  • 預設值 - 預設 LTCG 設定。
  • 使用快速連結時間程式碼產生 - 搭配 /FASTGENPROFILE 使用連結時間程式碼產生。
  • 使用連結時間程式碼產生 - 使用 連結時間程式碼產生
  • 設定檔引導優化 - 檢測 - 搭配 :PGINSTRUMENT 使用 設定檔引導式優化
  • 設定檔引導優化 - 優化 - 指定連結器應該使用執行已檢測二進位檔之後所建立的設定檔資料來建立優化的映射。
  • 設定檔引導優化 - 更新 - 允許和追蹤從階段中所 :PGINSTRUMENT 指定專案新增或修改輸入檔案的清單。

內嵌 IDL 屬性頁

MIDL 命令

指定 MIDL 命令列選項。 (/MIDL:@responsefile)

忽略內嵌 IDL

選項 /IGNOREIDL 會指定原始程式碼中的任何 IDL 屬性不應該處理到 .idl 檔案中。

合併的 IDL 基底檔案名

選項 /IDLOUT 會指定檔案的名稱和副檔名 .idl

類型程式庫

選項 /TLBOUT 會指定檔案的名稱和副檔名 .tlb

TypeLib 資源識別碼

可讓您指定連結器產生之型別程式庫的資源識別碼。 (/TLBID:id)

Windows 中繼資料屬性頁

產生 Windows 中繼資料

啟用或停用 Windows 中繼資料的產生。

Choices

  • - 啟用 Windows 中繼資料檔案的產生。
  • - 停用 Windows 中繼資料檔案的產生。

Windows 中繼資料檔案

選項 /WINMDFILE 參數。

Windows 中繼資料金鑰檔案

指定金鑰或金鑰組來簽署 Windows 中繼資料。 (/WINMDKEYFILE:filename)

Windows 中繼資料金鑰容器

指定要簽署 Windows 中繼資料的金鑰容器。 (/WINMDKEYCONTAINER:name)

Windows 中繼資料延遲符號

部分簽署 Windows 中繼資料。 如果您只想將公開金鑰放在 Windows 中繼資料中,請使用 /WINMDDELAYSIGN 。 預設值為 /WINMDDELAYSIGN:NO

進階屬性頁

進入點

[/ENTRY](entry-entry-point-symbol.md) 選項會將進入點函式指定為檔案或 DLL 的起始位址 .exe

沒有進入點

/NOENTRY建立僅限資源的 DLL 需要選項。 使用此選項可防止 LINK 將 _main 的參考連結到 DLL 中。

設定總和檢查碼

選項 /RELEASE 會在檔案的 .exe 標頭中設定總和檢查碼。

基底位址

設定程式的基底位址。 (/BASE:{address[,size] | @filename,key})

隨機基底位址

隨機化基底位址。 (/DYNAMICBASE[:NO])

固定基底位址

建立僅可在其慣用基底位址載入的程式。 (/FIXED[:NO])

資料執行預防 (DEP)

將可執行檔標示為已測試為與 Windows 資料執行防止功能相容。 (/NXCOMPAT[:NO])

關閉元件產生

選項 /NOASSEMBLY 會指示連結器建立目前輸出檔案的映射,而沒有 .NET Framework 元件。

卸載載入延遲 DLL

UNLOAD限定詞會告知延遲載入協助程式函式支援明確卸載 DLL。 (/DELAY:UNLOAD)

Nobind 延遲載入 DLL

限定 NOBIND 符會告知連結器不要在最終影像中包含可系結的匯入位址表 (IAT)。 預設會是針對延遲載入 DLL 建立可繫結 IAT。 (/DELAY:NOBIND)

匯入程式庫

覆寫預設匯入程式庫名稱。 (/IMPLIB:filename)

合併區段

選項 /MERGE 會將第一個區段與第二個區段結合,並提供產生的區段第二個區段名稱。 例如, /merge:.rdata=.text.rdata 區段與 .text 區段合併,並將合併區段 .text 命名為 。

目的電腦

選項 /MACHINE 會指定程式的目標平臺。

Choices

  • 未設定
  • MachineARM
  • MachineARM64
  • MachineEBC
  • MachineIA64
  • MachineMIPS
  • MachineMIPS16
  • MachineMIPSFPU
  • MachineMIPSFPU16
  • MachineSH4
  • MachineTHUMB
  • MachineX64
  • MachineX86

設定檔

產生可與效能工具分析工具搭配使用的輸出檔。 需要將 [產生偵錯資訊 ] 屬性設定為 GenerateDebugInformation (/DEBUG)。 (/PROFILE)

CLR 執行緒屬性

明確指定 CLR 程式進入點的執行緒屬性。

Choices

  • MTA 執行緒屬性 - 將 MTAThreadAttribute 屬性套用至程式的進入點。
  • STA 執行緒屬性 - 將 STAThreadAttribute 屬性套用至程式的進入點。
  • 預設執行緒屬性 - 與未指定 /CLRTHREADATTRIBUTE 相同。 讓 Common Language Runtime (CLR) 設定預設執行緒屬性。

CLR 映射類型

設定 CLR 映像的類型 (IJW、純或安全)。

Choices

  • 強制 IJW 影像
  • 強制純 IL 映射
  • 強制保管庫 IL 映射
  • 預設影像類型

金鑰檔案

指定要簽署元件的金鑰或金鑰組。 (/KEYFILE:filename)

金鑰容器

指定要簽署元件的金鑰容器。 (/KEYCONTAINER:name)

延遲符號

部分簽署元件。 如果您只想要將公開金鑰放在元件中,請使用 /DELAYSIGN 。 預設值為 /DELAYSIGN:NO

CLR Unmanaged 程式碼檢查

/CLRUNMANAGEDCODECHECK 指定連結器是否會套用 SuppressUnmanagedCodeSecurityAttribute 至從 Managed 程式碼產生之 P/Invoke 呼叫到原生 DLL 的連結器。

錯誤報告

可讓您將內部編譯器錯誤 (ICE) 資訊直接提供給 Visual Studio C++ 小組。

Choices

  • PromptImmediately - 立即提示。
  • 佇列供下一次登入 - 下一次登入的佇列。
  • 傳送錯誤報表 - 傳送錯誤報表。
  • 沒有錯誤報表 - 沒有錯誤報表。

SectionAlignment

選項 /ALIGN 會指定程式線性位址空間內每個區段的對齊方式。 number 引數以位元組為單位,而且必須是兩個乘冪。

保留 PInvoke 呼叫的最後一個錯誤碼

/CLRSUPPORTLASTERROR,預設為開啟,會保留透過 P/Invoke 機制呼叫之函式的最後一個錯誤碼,這可讓您從使用 /clr 編譯的程式碼呼叫 DLLS 中的原生函式。

Choices

  • 已啟用 - 啟用 /CLRSupportLastError
  • Disabled - 停用 /CLRSupportLastError
  • 僅限 系統 DLL - 僅針對系統 DLL 啟用 /CLRSupportLastError

映射具有保管庫例外狀況處理常式

指定 時 /SAFESEH ,只有在連結器也能夠產生影像的安全例外狀況處理常式資料表時,才會產生影像。 下表指定作業系統的例外狀況處理常式對映射有效。