Windows下動態庫和靜態庫的淺要對比分析

1. 動態庫和靜態庫的區別

  1. 生成階段:

    對於靜態庫函數,函數的代碼(接口和實現)全部硬編碼進入到lib文件中;而對於動態庫,在編譯生成過程中會產生一個Lib文件和一個Dll文件,其lib文件與靜態庫文件不同,在動態庫的lib文件中,僅保持函數的接口和索引,而函數的代碼實現保存在dll文件中;

  2. 鏈接階段:

    對於靜態庫文件,在項目生成exe文件中,程序會將lib文件全部鏈接到二進制運行文件中;而對於動態庫文件,生成exe文件時並不加載,而僅僅是在實際運行中使用時才從dll文件中加載其對應的二進制代碼。(開發過程中需要動態庫的lib文件來進行開發;運行階段僅僅需要dll文件)

(未完待續)
最近正在看 米蘭·斯特瓦諾維奇 所著的 《高級C/C++編譯技術》 ,讀完之後會寫些感悟的。
豆瓣鏈接:http://book.douban.com/subject/26414485/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章