/INCREMENTAL (以累加方式連結)

/INCREMENTAL[:NO]

備註

/INCREMENTAL 選項是控制連結器處理累加連結的方式。

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

以累加方式連結的程式和以非累加方式連結的程式在功能上不相上下。 但是,由於要為後續累加連結作準備,因此以累加方式連結的可執行檔 (.exe) 或動態連結程式庫 (DLL):

  • 由於程式碼和資料的填補,所以會比以非累加方式連結的程式大一些 (填補可以讓連結器增加函式和資料的大小而不需重新建立 .exe 檔)。

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

    注意事項注意事項

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

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

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

  • 未選取以累加方式連結 (/INCREMENTAL:NO)

  • 選取了 /OPT:REF

  • 選取了 /OPT:ICF

  • 選取了 /ORDER

當指定 /DEBUG 時,/INCREMENTAL 亦隱含其中。

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

  • 找不到累加狀態檔 (.ilk) (LINK 會為後續的累加連結建立一個新的 .ilk 檔)。

  • 沒有對 .ilk 檔的寫入使用權限 (LINK 會忽略 .ilk 檔並且以非累加方式連結)。

  • 找不到 .exe 或 .dll 輸出檔。

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

  • 某個 LINK 選項變更了。 大部分 LINK 選項在不同組建之間有所變更時,便會導致完整連結。

  • 加入或遺漏了某個目的 (.obj) 檔。

  • 以 /Yu /Z7 選項編譯的目的檔變更了。

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

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱設定 Visual C++ 專案屬性

  2. 按一下 [連結器] 資料夾。

  3. 按一下 [一般] 屬性頁。

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

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

請參閱

參考

設定連結器選項

連結器選項