linux下建立和維護靜態函式庫例項

2021-04-13 00:26:05 字數 977 閱讀 3452

(1)    自己建立乙個函式庫,庫里有兩個函式 ,兩個函式的名稱fred和bill,對應的原始檔為fred.c和bill.c程式的清單如下:  

#include

void fred(int arg)

#include

void bill(char *arg)

我們對這兩個函式進行編譯以生成能夠新增到函式庫裡的二進位制目標檔案,這需要在呼叫c編譯器的時候加上"-c",以禁止編譯器生成最終的程式,

gcc  -c fred.c bil.c

ls *.o

(2)為函式庫建立乙個標頭檔案.標頭檔案的檔名為 lib.h程式清單為:

/*this is a lib.h. it declare function fred and bill users*/

void fred (int);

void bill(char *);

(3)編寫main函式.源檔名:main.c

#include "lib.h"

int main()

(4) 編譯並測試這個程式.

gcc -c main.c

gcc -o mymain main.o bill.o

./mymain

(5) 現在編譯並使用乙個庫.我們使用ar程式來建立檔案,並把我們的目標**新增到其中,

ar crv libfoo.a bill.o fred.o

這樣我們的函式庫就可以用了

gcc -o mymain main.o libfoo.a

./mymain

我們也可以通過"-l"選項來訪問我們的函式庫,因為沒有儲存到標準的地方,所以我們用"-l"來告訴編譯器到那才能找到

gcc -o mymain main.o -l. -lfoo

"-l."告訴編譯器在當前子目錄裡找函式庫,"-lfoo"選項告訴編譯器使用那個名為libfoo.a的函式庫.

這樣我們就建立了自己的靜態函式庫並呼叫函式庫里的函式.

linux下構建 靜態函式庫 a

一.靜態庫構建 1.定義兩個函式檔案 say.c include void say char arg write.c include void write char arg 2.編譯這兩個檔案 gcc c say.c write.c 產生say.o write.o c作用是阻止編譯器建立乙個完整的程...

Linux 下的靜態(函式)庫 動態(函式)庫

不用指定生成.o檔名 預設生成file1.o,file2.o,file3.o ar rv libname.a file1.o file2.o file3.or 將flie1.o,file2,o,file3.o插入archive,如故原先archive中已經存在某檔案,則先將該檔案刪除。v 顯示ar操...

Linux下建立和使用靜態和動態庫

一.建立靜態庫與使用 建立靜態庫 1.編寫源 這個可以想像成是一種服務或一種函式,它可以為別的程式提供服務。2.生成目標檔案 gcc c x.c o x.o 注意,這裡是用 c選項來編譯 3.使用ar命令建立靜態庫 ar rc lib a x.o 說明 lib a是你想要建立靜態庫的名字,根據習慣在...