动态库与静态库

来源:互联网 发布:mac第三方应用商店 编辑:程序博客网 时间:2024/06/06 03:20

静态库生成方法

先把文件编译成.o文件

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

然后在利用ar命令生成.a的库

如 ar -r  libbase.a  add.o

查看静态库中的内容 ar -t libbaase.a

使用静态库:

如add.c的内容为

#include<stdio.h>

int add(int a,int b)

{

return (a+b);

}

编译add.c: gcc -c -static add.c -o add.o

在使用静态库时如下:如main.c函数

#include<stdio.h>

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

gcc main.o libbase.a -o app

生成可执行文件app


动态库的使用

编译add.c:gcc -c  -fpic add.c 

gcc -shared add.o -o libbase.so

此时已经生成动态库

然后进行使用:

首先编译main.c gcc -c main.c -o main.o

gcc mian.o ./libbase.so -o app在此过程中要指定动态库的路径,一般相对路径就可以,不能至指定库名。

连接ldd app

然后就可以生成可执行文件app了