靜態庫與動態庫的區別

2021-09-18 07:41:51 字數 515 閱讀 5706

一、什麼是庫

庫實際上是一種**共享的方式,主要用於**重用和原始碼隱藏,通常分為動態庫和靜態庫。

靜態庫:鏈結時完整的拷貝至可執行檔案中,被多次使用就有多份冗餘拷貝。

動態庫:鏈結時不複製,程式執行時由系統動態載入到記憶體,供程式呼叫,系統只載入一次,多個程式共用,節省記憶體空間。

二、什麼是.a、.bundle、.framework

在ios中靜態庫以.a和.framework的形式存在,動態庫以.dylib和.framework的形式存在。

二者區別不大,.a是純二進位制檔案,.a檔案不能單獨使用,至少要有.**件配合,而.framework除了二進位制檔案外,還包含一些資源檔案(標頭檔案,plist等),由於自身包含了標頭檔案,所以.framework可以單獨使用。

.a和.framework兩種靜態庫,通常都是把需要用的到或者xib檔案存放在乙個bundle檔案中,而該bundle檔案的名字和.a或.framework的名字相同。

動態庫與靜態庫的區別

dll是在你的程式執行的時候才連線的檔案,因此它是一種比較小的可執行檔案格式,dll還有其他的檔案格式如.ocx等,所有的.dll檔案都是可執行。lib是在你的程式編譯連線的時候就連線的檔案,因此你必須告知編譯器連線的lib檔案在那裡。一般來說,與動態連線檔案相對比,lib檔案也被稱為是靜態連線庫。...

動態庫與靜態庫的區別

靜態庫 在編譯的時候載入生成目標檔案,在執行時不用載入庫,在執行時對庫沒有依賴性。動態庫 在目標檔案執行時載入,手動載入,且對庫有依賴性。兩者區別 一,靜態庫的使用需要 1 包含乙個對應的標頭檔案告知編譯器lib檔案裡面的具體內容 2 設定lib檔案允許編譯器去查詢已經編譯好的二進位制 二,動態庫的...

動態庫與靜態庫的區別

dll是在你的程式執行的時候才連線的檔案,因此它是一種比較小的可執行檔案格式,dll還有其他的檔案格式如.ocx等,所有的.dll檔案都是可執行。lib是在你的程式編譯連線的時候就連線的檔案,因此你必須告知編譯器連線的lib檔案在那裡。一般來說,與動態連線檔案相對比,lib檔案也被稱為是靜態連線庫。...