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...