動態鏈結庫和靜態鏈結庫的區別

2021-07-04 07:29:18 字數 425 閱讀 5950

本文我們學習和了解一下動態鏈結庫和靜態鏈結庫的區別。

靜態鏈結庫(lib檔案),將函式**編譯到應用程式中,應用程式執行時全部載入到記憶體。優點是不需要掛在dll檔案,缺點是生成的應用程式比較大。

動態鏈結庫(lib和dll檔案),lib編譯到應用程式中,實際函式**寫在dll中。在應用程式執行時,lib只是用來提供dll中函式的入門位址

動態鏈結庫的兩種鏈結方式:靜態鏈結(隱式鏈結)和動態鏈結(顯式鏈結)。前者需要.h檔案、.lib檔案和.dll檔案,過程就是上面說的從lib中獲取入口位址,並載入dll檔案。使用時需要將lib加入專案的依賴庫,並將dll檔案加入應用程式的目錄中,後者是指通過win32函式loadlibrary和getprocaddress來進行直接使用,僅僅需要.dll檔案加入到應用程式的目錄即可。

動態鏈結庫和靜態鏈結庫的區別

平時總聽人講動態鏈結庫 靜態鏈結庫 lib dll so等名詞,一直搞不清楚這幾者之間的區別以及各自的應用場合。後來上網仔細查了一下資料,終於搞清楚了,在這裡整理一下先。動態鏈結庫 動態鏈結庫中包含了多個已經被編譯 鏈結好的函式和資料資源,但並不包含函式的原始碼。動態鏈結庫在windows下是.dl...

動態鏈結庫和靜態鏈結庫

函式和資料被編譯進乙個二進位制檔案 通常擴充套件名為.lib 在使用靜態庫的情況下,在編譯鏈結可執行檔案時,鏈結器從庫中複製這些函式和資料並把它們和應用程式的其它模組組合起來建立最終的可執行檔案 exe檔案 在使用動態鏈結庫的時候,往往提供兩個檔案 乙個引入庫和乙個dll。引入庫包含被dll匯出的函...

flex的動態鏈結庫和靜態鏈結庫

flex可以有兩種庫,一種是動態鏈結庫 rsl 一種是靜態鏈結庫。我們通常使用的swc是靜態鏈結庫,編譯的時候會直接把需要的東西編進去,包含在生成的swf中。swc檔案是一種壓縮檔案格式,裡面包含乙個library.swf 檔案乙個catalog.xml檔案。這其中包含的.swf檔案可以單提出來當成...