鏈結庫知識點總結

2022-08-29 19:00:21 字數 645 閱讀 3194

1 靜態鏈結庫的優點 

(1) **裝載速度快,執行速度略比動態鏈結庫快; 

(2) 只需保證在開發者的計算機中有正確的.lib檔案,在以二進位制形式發布程式時不需考慮在使用者的計算機上.lib檔案是否存在及版本問題,可避免dll地獄等問題。 

2 動態鏈結庫的優點 

(1) 更加節省記憶體並減少頁面交換;

(2) dll檔案與exe檔案獨立,只要輸出介面不變(即名稱、引數、返回值型別和呼叫約定不變),更換dll檔案不會對exe檔案造成任何影響,因而極大地提高了可維護性和可擴充套件性;

(3) 不同程式語言編寫的程式只要按照函式呼叫約定就可以呼叫同乙個dll函式;

(4)適用於大規模的軟體開發,使開發過程獨立、耦合度小,便於不同開發者和開發組織之間進行開發和測試。

3 不足之處

(1) 使用靜態鏈結生成的可執行檔案體積較大,包含相同的公共**,造成浪費;

(2) 使用動態鏈結庫的應用程式不是自完備的,它依賴的dll模組也要存在,如果使用載入時動態鏈結,程式啟動時發現dll不存在,系統將終止程式並給出錯誤資訊。而使用執行時動態鏈結,系統不會終止,但由於dll中的匯出函式不可用,程式會載入失敗;速度比靜態鏈結慢。當某個模組更新後,如果新模組與舊的模組不相容,那麼那些需要該模組才能執行的軟體,統統撕掉。這在早期windows中很常見。

C 知識點14 靜態鏈結庫和動態鏈結庫區別

庫 函式的集合 作用 共享 靜態 動態指鏈結 程式編譯過程中,在鏈結階段,程式生成的彙編檔案和庫進行鏈結,生成可執行檔案。底層格式,記憶體布局 a lib 靜態鏈結庫在程式編譯時被連線到目標 中參與編譯 鏈結時將庫完整地拷貝至可執行檔案中,被多次使用就有多份冗餘拷貝 生成可執行程式之後,靜態鏈結庫不...

知識點鏈結

erlang erlang 記憶體 cpu 函式效能分析工具 erlang各種系統限制 erlang程序建立時間統計及smp現象.erlang 開啟和關閉smp選項之差異觀察 golang 基於go語言的棋牌遊戲框架 標記 學習借鑑 76個值得你注意的erlang程式設計習慣...

靜態鏈結庫與動態鏈結庫總結

1 在生成lib檔案的時候並不發生連線的過程,編譯器僅僅把obj檔案裝載為乙個lib檔案。例如 static1 int add int a,int b int sub int a,int b static2 int myadd int a,int b int mysub int a,int b 這個...