动态库与静态库

静态库生成方法

先把文件编译成.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了






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值