靜態鏈結和動態鏈結

2021-10-24 17:19:32 字數 485 閱讀 7818

靜態鏈結

由於在我們實際的開發中,不可能將他們都放在乙個檔案中執行,所以將他們生成.o檔案進行,從而要將他們進行鏈結,從而實現乙個可以執行的程式,這個過程就是靜態鏈結

靜態庫:是由多個多個.o檔案壓縮打包形成的乙個檔案

靜態鏈結的優點:他在執行的時候都已經將副本都放入了檔案中,所以執行的速度變快

缺點:對每乙個檔案都有依賴,所以檔案比較大,而且更新比較麻煩

動態鏈結

其中動態鏈結解決了空間浪費和更新困難兩個問題

原理:他是在程式執行的時候,才將他們鏈結生成乙個完整的程式

優點:即使需要每個程式d都依賴同乙個庫,但是他們共享乙個副本,只是在鏈結的時候使用,同時他更新的時候,只會將改變的地方重新鏈結。但是由於執行的時候會鏈結,所以速度會變慢,但是速度減少在5%以下!!!

靜態鏈結和動態鏈結

靜態載入dll dll工程b 專案屬性 配置屬性 常規 配置型別 動態庫 dll 在宣告檔案中,宣告匯出函式 declspec dllexport int xx 如果是c檔案,要在c 檔案中被呼叫,註明extern c 可以 ifdef cplusplus extern c endif 呼叫dll的...

靜態鏈結和動態鏈結

1 靜態鏈結庫只包含 lib檔案 動態鏈結庫包含 lib檔案和dll檔案,靜態鏈結庫中不能再包含其他的動態鏈結庫或者靜態庫,而在動態鏈結庫中還可以再包含其他的動態或靜態鏈結庫。此外他們都會用到定義了函式和相關資料結構的.h標頭檔案,其中 h標頭檔案是編譯時必須的,lib是鏈結時需要的,dll是執行時...

靜態鏈結和動態鏈結

動態鏈結庫 靜態庫 import庫區別 windows為應用程式提供了豐富的函式呼叫,這些函式呼叫都包含在動態鏈結庫中。其中有3個最重要的dll,kernel32.dll,它包含用於管理記憶體 程序和執行緒的各個函式 user32.dll,它包含用於執行使用者介面任務 如視窗的建立和訊息的傳送 的各...