C語言建立靜態鏈結庫和動態鏈結庫並引用

2021-08-21 01:25:08 字數 798 閱讀 1158

一、生成靜態鏈結庫並應用

1.首先,建立乙個c檔案

root@ubuntu:~/c# cat fun.c 

#includeint fun(int a,int b)

root@ubuntu:~/c# cat fun.h

#ifndef _fun_h_

#define _fun_h_

int fun(int a,int b);

#endif

2.然後,將fun.c打包成靜態庫

①.gcc -c fun.c -o fun.o       //生成二進位制檔案

②.ar -rc libfun.a fun.o    //打包成靜態庫

3.呼叫,在main.c中呼叫

#include#include"fun.h"

int main(void)

4.編譯,gcc main.c -o main -i. -lfun -l.

5.成功引用。

二、生成動態鏈結庫並引用

-shared 為鏈結庫  讓編譯器知道是要編譯乙個共享庫

-fpic(position independent code)   編譯生成**與位置無關

1.將上面的例子繼續使用直接進行編譯

gcc -c -fpic -shared fun.c -o libfun.so

2.進行 呼叫

gcc main.c -o main -l. -lfun

3,呼叫成功。

建立靜態鏈結庫 動態鏈結庫

下面的實操中的動態庫或者靜態庫名都用wujunwu 第一步 建立乙個源 建立靜態鏈結庫的源 include void func1 void int func2 int x,int y 第二步 建立乙個.件作為函式宣告 void func1 void intfunc2 int x,int y 第三步 ...

C 靜態鏈結庫和動態鏈結庫

專案 屬性 c c 附加包含目錄 填寫附加標頭檔案所在目錄 分號間隔多項 專案 屬性 鏈結器 常規 附加庫目錄 填寫附加依賴庫所在目錄 分號間隔多項 專案 屬性 鏈結器 輸入 附加依賴項 填寫附加依賴庫的名字.lib 空格或分號間隔多項 2 dynamic link library 的縮寫形式,dl...

C語言使用動態鏈結庫靜態鏈結庫

1 每個 c 語言原始檔被編譯後生成目標檔案,這些目標檔案最終要被鏈結在一起生成可執 行檔案。2 鏈結器的主要作用是把各個模組之間相互引用的部分處理好,使得各個模組之間能夠正 確的銜接。由鏈結器在鏈結時將庫的內容直接加入到可執行程式中 編譯靜態庫原始碼 gcc c lib.c o lib.o 生成靜...