linux靜態庫的建立

2021-07-11 05:05:18 字數 595 閱讀 6052

ar crv libfoo.a  bill.o fred.o

bill.o 由gcc -c bill.c 得到

fred.o  由gcc -c fred.c得到

具體過程如下:

bill.c 程式如下:

#include

void bill(char *arg)

fred.c程式如下:

#include

void fred(int arg)

gcc -c bill.c fred.c

lib.h **:

void bill(char *);

void fred(int);

program.c**如下:

#include

#include"lib.h"

int main()

gcc -c program.c

ar crv  libfoo.a bill.o fred.o

gcc -o program program.o libfoo.a

從上面的過程可以看出,標頭檔案只是宣告函式,並沒有函式的實際內容,而庫函式包含了函式的實際內容,而且是.o 形式的,就是可執行形式的。

Linux建立靜態庫

1 gcc c joker.c mac.c 建立.o檔案,已編譯,未鏈結的檔案。2 ar crv libfoo.a joker.o mac.o 對.o檔案歸檔,把一組小的檔案集中到乙個大檔案中,使用ar可以把任何型別的檔案歸為檔案。3 ranlib libfoo.a 為這個庫建立乙個內容表。可以這樣...

Linux 靜態庫 和 動態庫 的建立

3 11 gcc wall hello.c 顯示所有警告 庫檔案 存放函式和變數的倉庫,特點 只能使用庫里的函式和變數,不能看到其實現 靜態庫.a 當使用靜態庫時,庫里的函式和變數只在編譯時載入到可執行檔案 動態庫.so 當使用動態庫時,庫里函式和變數只在執行時載入到可執行檔案的 可執行檔案 靜態庫...

linux建立靜態庫和動態庫

2015新年第一篇部落格,哈哈,這個2月還沒寫過部落格呢,從現在開始繼續!一 建立靜態庫 在本例中將建立乙個小型靜態函式庫libfoo,包含兩個函式bill fred 1 編輯兩個檔案bill.c和fred.c bill.c include void bill fred.c include void...