Linux 靜態庫和動態庫的優缺點

2021-10-22 23:52:23 字數 471 閱讀 8968

靜態庫在程式編譯時,直接將庫中的**鏈結到可執行程式中。

缺點:加入多個程式共同使用同乙個靜態庫,相當於把多段相同的**儲存在不同的可執行程式中,在空間上有一定浪費。

1.使可執行程式執行速度快

2.浪費一定的空間

可執行程式只儲存對應的函式引用表,只有程式執行時,再鏈結對應的庫

1.節省空間

2.執行速度相對較慢

靜態庫犧牲了空間效率,換取了時間效率;動態庫犧牲了時間效率,換取了空間效率。沒有好壞區別,只看具體需要。

使用靜態庫,提公升了速度,浪費了記憶體。

使用動態庫,降低了速度,節約了記憶體。

linux 靜態庫和動態庫

1.生成方式 靜態庫 首先將原始檔編譯成目標檔案 gcc c test.c o test.o 然後生成靜態庫 ar rc libstatic.a test.o 共享庫 首先將原始檔編譯成目標檔案 gcc c test.c o test.o 生成共享庫 gcc fpic shared o libsha...

Linux 靜態庫和動態庫

庫有兩種,一種是靜態鏈結庫,一種是動態鏈結庫,不管是哪一種庫,要使用它們,都要在程式中包含相應的include標頭檔案。我們先來回顧一下程式編譯的過程。如下圖 庫 本質乙個目標檔案,這個檔案的字尾有兩種格式,對應兩種庫 缺點是 檔案太大。多次拷貝庫程式,不僅浪費空間,而且檔案體積大 下面實現乙個靜態...

Linux 靜態庫和動態庫

我們指定c程式從 到乙個可執行程式需要經過預處理 編譯 彙編 鏈結。而最後一步鏈結又分為動態鏈結與靜態鏈結。靜態鏈結相當於就是講所要鏈結的庫提前放入鏈結的檔案,這樣子的檔案體積較大,但是可移植性較高。而動態鏈結是在執行的時候才去主動鏈結所需要鏈結的庫,這樣的 體積較小,多個程式共同使用庫的 我們li...