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

2021-07-16 13:38:29 字數 433 閱讀 3483

靜態鏈結是指要把呼叫的函式或過程直接拷貝到可執行檔案中,成為可執行檔案的一部分。

缺點:

當多個程式都要呼叫相同函式時,記憶體中就會有多個拷貝,浪費了記憶體資源。

優點:

執行速度快,執行程式能夠在其他作業系統的機器上直接執行。

動態鏈結

動態鏈結是所呼叫的函式**並沒有拷貝到應用程式的可執行檔案中,而是僅僅在其中加入了所呼叫函式的描述資訊。當執行時,才與相應的動態鏈結庫之間建立連線關係。

缺點:因為執行時才才建立連線關係,所以執行速度慢;程式移植時,要將所需的dll檔案都要拷貝過去。

優點:

當程式中呼叫多次時,記憶體中只有乙份拷貝,節省記憶體資源。

在客戶端軟體需要公升級時,動態連線庫尤為重要,因為只需把公升級所需的庫檔案傳輸過去進行動態鏈結就可以。

靜態鏈結和動態鏈結區別

一 靜態鏈結 鏈結程式搜尋乙個或者多個庫檔案 標準庫.lib 直到在某個庫中找到了含有所引用函式的物件模組,然後鏈結程式把這個物件模組拷貝到結果可執行檔案 exe 中。鏈結程式維護對該函式的所有引用,使它們指向該程式中現在含有該函式拷貝的地方。二 動態鏈結 鏈結程式也是搜尋乙個或者多個庫檔案 輸入庫...

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

靜態庫和動態庫的比較 鏈結靜態庫其實從某種意義上來說也是一種貼上複製,只不過它操作的物件是目標 而不是原始碼而已。因為靜態庫被鏈結後庫就直接嵌入可執行檔案中了,這樣就帶來了兩個問題。首先就是系統空間被浪費了。這是顯而易見的,想象一下,如果多個程式鏈結了同乙個庫,則每乙個生成的可執行檔案就都會有乙個庫...

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

遺憾地說 除了ender說的 靜態庫在程式執行時就會裝入記憶體,而動態庫在呼叫的時候才裝入!是正確的外,其他觀點都有偏頗之處甚至是錯誤的。我的感覺是,大家受mfc的影響太深了,而沒有看到事情的本質。首先糾正所謂 靜態連線就是把需要的庫函式放進你的exe之中 的說法。在真實世界中,有三個概念 use ...