導入庫和靜態庫的區別

2021-10-08 10:56:53 字數 584 閱讀 9860

導入庫只包含了位址符號表等,確保程式找到對應函式的一些基本位址資訊。

目前以lib字尾的庫有兩種,一種為靜態鏈結庫(static library,以下簡稱「靜態庫」),另一種為動態連線庫(dll,以下簡稱「動態庫」)的導入庫(import library,以下簡稱「導入庫」)。

靜態庫是乙個或者多個obj檔案的打包,所以有人乾脆把從obj檔案生成lib的過程稱為archive,即合併到一起。比如你鏈結乙個靜態庫,如果其中有錯,它會準確的找到是哪個obj有錯,即靜態lib只是殼子。

動態庫一般會有對應的導入庫,方便程式靜態載入動態鏈結庫,否則你可能就需要自己loadlibrary調入dll檔案,然後再手工getprocaddress獲得對應函式了。有了導入庫,你只需要鏈結導入庫後按照標頭檔案函式介面的宣告呼叫函式就可以了。

導入庫是生成動態庫或者exe的同時生成的以.lib為結尾的庫(導入庫只包含了位址符號表等,確保程式找到對應函式的一些基本位址資訊)

靜態庫是vs工程:專案屬性->常規-》配置型別-》靜態庫(生成的靜態庫)(乙個或者多個obj檔案的打包,所以有人乾脆把從obj檔案生成lib的過程稱為archive)

靜態庫要比導入庫大(包含其依賴的靜態庫)

導入庫和靜態庫的區別

導入庫只包含了位址符號表等,確保程式找到對應函式的一些基本位址資訊。1靜態庫 2導入庫和靜態庫的區別 目前以lib字尾的庫有兩種,一種為 靜態鏈結庫 static library,以下簡稱 靜態庫 另一種為 動態連線庫 dll,以下簡稱 動態庫 的導入庫 import library,以下簡稱 導入...

動態庫和靜態庫的區別

一 什麼是庫?庫是共享程式 的方式,一般分為靜態庫和動態庫。靜態庫 鏈結時完整地拷貝至可執行檔案中,被多次使用就有多份冗餘拷貝。動態庫 鏈結時不複製,程式執行時由系統動態載入到記憶體,供程式呼叫,系統只載入一次,多個程式共用,節省記憶體。二 靜態庫和動態庫的好處 使用靜態庫的好處 至於蘋果為啥禁止i...

動態庫和靜態庫的區別

靜態庫 在程式編譯時會被鏈結到 中,程式執行時將不再需要靜態庫。字尾是lib 靜態庫的生成 生成靜態庫的時候要使用.o檔案來進行編譯生成 gcc cprint.c oprint.o ar rc libtest.a print.o gccmain.c l.ltest omain 動態庫 在程式編譯並不...