VC 的增量鏈結

2021-06-19 09:57:50 字數 765 閱讀 3268

增量鏈結(incremental linking)這個詞語在使用visual c++時經常會遇到(其實

不只是vs系列,其它鏈結器也有這個特性), 就比如經常遇到的:上乙個增量鏈結沒有

生成它, 正在執行完全鏈結.  但是它是什麼意思呢? 很多人只是經常看到, 但是不

明白這是什麼. 首先說明一下, 這個特性是鏈結器為了《提高鏈結速度》而增加的功

能. 說是這樣, 可能不理解, 下面就說說其原理:

有乙個源**檔案, 你寫了許多許多行, 你正在除錯它, 你突然發現某個地方

有乙個小bug, 你打算改正, 好了, 錯誤改正了, 但是鏈結器該採用何種方式鏈結新**?

其一: 可以把obj刪除, 然後重新生成.

其二: 為每個函式預留一部分空間, 編譯鏈結時, 只是修改你修改過的函式

對應的**, 其它二進位制**保持不變.

可能你已經明白了, 為目標(函式)**"預留一部分空間", 這就是"增量"的含

義. 當**修改後, 只需要修改這一部分的目標**即可快速完成編譯與鏈結! 

這就為除錯**時快速修改編譯提高了速度! 這也是為什麼偵錯程式

支援 "edit and continue" 特性!

這不浪費程式空間麼? 你可能會想, 不過確實如此. 正因為如此, debug版本的

目標檔案會遠遠大於release版本的目標檔案(不單因為此). 在release編譯時, 是

不能啟用增量鏈結模式的!

好了, 先就介紹這些, 其實我也只是知道部分原理, 本文的講解並不深入!

INCREMENTAL(增量鏈結)

visual studio 2012 其他版本 此主題尚未評級 評價此主題 複製 incremental no 備註 incremental 選項控制鏈結器如何處理增量鏈結。預設情況下,鏈結器以增量模式執行。若要重寫預設增量鏈結,請指定 incremental no。增量鏈結的程式在功能上等效於非增...

VS 增量鏈結

在win7下使用vs2008使用增量鏈結編譯程式時,報win7下不時出現microsoft incremental linker已停止工作 解決辦法 專案 屬性 鏈結器 常規 下面的 啟用增量鏈結 將 是 incremental 改為 否 incremental no vc 中,在非增量鏈結情況下,...

VC編譯鏈結openssl

步驟如下 3.啟動 visual studio tools裡面的 visual studio command prompt。4.在visual studio command prompt中改變當前目錄到openssl的目錄 5.在visual studio command prompt中輸入perl...