增量鏈結(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...