4 Linux靜態庫與動態庫

2021-07-26 10:55:03 字數 584 閱讀 4882

1.  gcc –c mylib.c –o mylib.o

2. ar cqs libmylib.a mylib.o

3. 將製作好的libmylib.a 複製到/usr/lib

gcc test.c –lmylib -o test
1. gcc –c mylib.c –o mylib.o

2. gcc -shared -fpic mylib.o -o libmylib.so

3. 將製作好的libmylib.so 複製到/usr/lib

-fpic 使輸出的物件模組是按照可重定位位址方式生成

的。-shared 指明產生動態鏈結庫。

例:gcc test.c –lmylib -o test
靜態庫和動態庫在發布時候還應該提供相應的標頭檔案(.h)方便呼叫。

在系統移植時需要為嵌入式系統新增靜態庫和動態庫(如glibc和ulibc)。

進行交叉編譯時也應該考慮鏈結庫的問題。

來自國嵌應用程式開發

Linux靜態庫與動態庫

靜態庫 a 靜態庫的 在編譯過程中已經被載入可執行程式,因此體積較大。編譯程式時候需要庫作依賴,執行時候不需要。方便,不再需要外部函式庫支援 缺點 1 因為靜態庫被鏈結後直接嵌入可執行程式中,相當於每乙個可執行程式裡都有乙個庫的副本,浪費空間 2 一旦庫中有bug,需要重新編譯。建立步驟 1 編寫函...

linux動態庫與靜態庫

現實中每個程式都要依賴很多基礎的底層庫,不可能每個人的 都從零開始。盡量不重複做別人已經做過的事,站在巨人的肩膀上 做事情。根據鏈結時期的不同,庫又有 靜態庫和共享庫 動態庫 二者的不同點在於 被載入的時刻不同,靜態庫的 在編譯過程中已經被載入可執行程式,因此體積較大。共享庫的 是在可執行程式執行時...

Linux 靜態庫與動態(共享)庫

不論是在linux還是windows下程式設計,我們都會用到庫,有自身帶的標準庫,也有我們自己寫的庫,庫就是預先編譯好的的方法的集合。linux中的庫可以分為兩種,靜態庫和動態庫,動態庫也稱為共享庫。在linux中,庫名稱都以lib開始,靜態庫名為 lib a,動態庫名為 lib so。靜態庫和動態...