動態庫與靜態庫

2021-08-04 04:42:54 字數 624 閱讀 4031

靜態庫生成方法

先把檔案編譯成.o檔案

如gcc -c add.c -o add.o

然後在利用ar命令生成.a的庫

如 ar -r  libbase.a  add.o

檢視靜態庫中的內容 ar -t libbaase.a

使用靜態庫:

如add.c的內容為

#include

int add(int a,int b)

return (a+b);

編譯add.c: gcc -c -static add.c -o add.o

在使用靜態庫時如下:如main.c函式

#include

int add(int a,int b);

int main()

printf("3+6=%d\n",add(3,6))

編譯mian.c:gcc -c main.c -o main.o

動態庫的使用

編譯add.c:gcc -c  -fpic add.c 

gcc -shared add.o -o libbase.so

此時已經生成動態庫

然後進行使用:

首先編譯main.c gcc -c main.c -o main.o

靜態庫與動態庫

linux下靜態庫 a 的例子 mylib.h 位於include資料夾下 ifndef mylib h define mylib h int add int a,int b endif mylib.cpp 位於lib資料夾中 include mylib.h int add int a,int b ...

靜態庫與動態庫

庫本質上是一種可執行的二進位制 可以被作業系統載入 linux和windows的庫是不相容的 庫可以分為靜態塊和動態庫,二者的不同點在於 被載入的時刻不同。靜態庫 在程式編譯時會被連線到目標 中,程式執行時不再需要改靜態庫,體積較大,一般應用與移植過程中在宿主機上編譯的 靜態庫檔名的命名規範是以li...

靜態庫與動態庫

1.靜態庫 工程在呼叫靜態庫時,複製靜態庫,源 加長,不節省程式空間。字尾名.a 優點 程式設計後不需要再依賴庫 以空間換時間 建立靜態庫 gcc c 原始檔.c ar rcs rcu 靜態庫名 目標檔案1 目標檔案2 rc 靜態庫不存在,就建立該庫檔案 s 更新靜態庫 使用 gcc o file ...