/INCREMENTAL (以累加方式連結)

指定要以累加方式連結,還是一律執行完整連結。

語法

/INCREMENTAL[:NO]

備註

連結 /INCREMENTAL 器選項會控制連結器如何處理累加連結。

根據預設,連結器是以累加模式執行。 若要覆寫預設累加連結,請指定 /INCREMENTAL:NO

累加連結的程式在功能上相當於非累加連結的程式。 不過,因為它已針對後續的累加連結備妥、累加連結的可執行檔、靜態程式庫或動態連結程式庫檔案:

  • 因為填補程式碼和資料,因此大於非累加連結的程式。 填補可讓連結器增加函式和資料的大小,而不需要重新建立檔案。

  • 可能包含跳躍點 (Jump) Thunk,用以將函式重新配置到新的位址。

    注意

    若要確保您的最終版本組建不包含邊框間距或 Thunk,請以非累加方式連結程式。

若要以累加方式連結,不論預設值為何,請指定 /INCREMENTAL 。 選取此選項時,如果連結器無法以累加方式連結,則會發出警告,然後以非累加方式連結程式。 某些選項和情況會覆寫 /INCREMENTAL

大部分程式都可以用累加方式連結。 然而,有些變更可能太大,而且有些選項與累加連結不相容。 如果指定了以下任何選項,LINK 便會執行完整連結:

  • 未選取累加連結 ( /INCREMENTAL:NO

  • /OPT:REF 已選取

  • /OPT:ICF 已選取

  • /OPT:LBR 已選取

  • /ORDER 已選取

/INCREMENTAL 指定 時 /DEBUG 為隱含。

此外,如果發生下列任何情況,LINK 也會執行完整連結:

  • 遺漏累加狀態 ( .ilk ) 檔案。 (LINK 會建立新的 .ilk 檔案,以準備後續的累加連結。

  • 檔案沒有寫入權限 .ilk 。 (LINK 會忽略檔案 .ilk ,並以非累加方式連結。

  • .exe缺少 或 .dll 輸出檔案。

  • 、 或 .dll.ilk.exe 時間戳記已變更。

  • 某個 LINK 選項已變更。 大部分 LINK 選項在不同組建之間有所變更時,都會產生完整連結。

  • 已新增或省略物件 ( .obj ) 檔案。

累加連結會建立或更新累加連結資料庫 .ilk 檔案。 您可以使用 [命名累加資料庫檔案] 連結器選項來指定此檔案 /ILK 的名稱和位置。 如需檔案的詳細資訊 .ilk ,請參閱 .ilk 檔案作為連結器輸入

在 Visual Studio 開發環境中設定這個連結器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [ 組態屬性 > ] 連結器 > [一般 ] 屬性頁。

  3. 修改 [啟用累加連結 ] 屬性。

若要以程式設計方式設定這個連結器選項

  1. 請參閱 LinkIncremental

另請參閱

MSVC 連結器參考
MSVC 連結器選項
.ilk 作為連結器輸入的檔案