製作靜態鏈結庫並使用

2021-08-01 10:11:36 字數 1018 閱讀 2858

1、製作靜態鏈結庫

第一步:demo.c demo.h

/* demo.c */

#include

void func1(void)

int func2(int a,int b)

/*demo.h*/

void func1(void);

int func2(int a, int b);

第二步:製作靜態庫

gcc -c demo.c -o demo.c

ar -rc libdemo.a demo.o

使用gcc -c 只編譯不連線,生成.o檔案。然後使用ar工具打包成.a歸檔檔案。庫名不能隨便亂起,一般是lib+庫名稱,字尾名是.a表示乙個歸檔檔案。

第三步:製作出靜態庫後,發布時需要發布.a檔案和.h檔案。

2、使用靜態庫

把.a檔案和.h檔案都放在需要引用的資料夾下。

/* test.c */

#include "demo.h"

#include

int main(void)

編譯:

gcc test.c -o test -ldemo

-l.

當使用-l***時,鏈結器試圖在預設的鏈結庫路徑去尋找lib***.a檔案,但是libdemo.a檔案放在了當前路徑,找不到。所以-l是指定鏈結器在哪個目錄下尋找的庫檔案,句號.表示當前路徑。

3、nm命令

nm命令用來檢視乙個.a檔案中都有哪些符號,如:

book@book-desktop:/work/c_test$ nm libdemo.a 

demo.o:

00000000

t func1

00000014

t func2

u puts

6 10自己製作靜態連線庫 動態鏈結庫並使用

1 第一步 自己製作靜態鏈結庫 首先使用gcc c只編譯不鏈結,生成.o檔案 然後使用ar工具進行打包成.a的歸檔檔案。庫名不能隨便亂起,一般是lib 庫名稱,字尾名是.a表示是乙個歸檔檔案 注意 製作出來了靜態庫之後,發布時需要發布.a檔案和.件 makefile all gcc pointer8...

如何製作及鏈結靜態鏈結庫

1.靜態鏈結庫的生成 在vc 6.0中新建專案的project選項卡中選擇win32 static library,將原檔案及標頭檔案新增到相應的資料夾中,編譯鏈結一下,如果沒有錯誤就會自動生成.lib檔案了。2.靜態鏈結庫的鏈結 將下列語句新增到頭檔案中 pragma comment lib,li...

如何製作及鏈結靜態鏈結庫。

1.靜態鏈結庫的生成 在vc 6.0中新建專案的project選項卡中選擇win32 static library,將原檔案及標頭檔案新增到相應的資料夾中,編譯鏈結一下,如果沒有錯誤就會自動生成.lib檔案了。2.靜態鏈結庫的鏈結 將下列語句新增到頭檔案中 pragma comment lib,li...