静态库和动态库的制作和使用

一、静态库的制作

源文件(.h ,.c)-》预编译-》编译-》汇编-》目标文件(.o)—》ar命令打包生成静态库

假设已经编写好源程序add.c ,则先生成目标文件

gcc -c add.c -o add.o

 ar命令把目标文件打包生成静态库文件

ar -rcs libtest.a add.o

 rcs为参数,默认加上,意思分别为 r更新、c创建、s建立索引

libtest.a为加了前缀和后缀的静态库名字

二、静态库的使用

静态库需要将.a文件和头文件发给客户

假设测试文件为test.c,静态库文件为libtest.a,头文件为head.h

则编译命令为

gcc test.c -I./ -L./ -ltest

其中-I(大写i)./表示在当前目录下搜索头文件,-L./告诉链接器在当前目录下搜索库文件,-l (小写L)后面根静态库的名字test (去掉前缀和后缀)

上面这条命令生成可执行文件a.out

三、动态库的制作

(1)生成与地址无关的目标文件
gcc -fpic -c add.c
(2)生成共享库
gcc -shared add.o sub.o mul.o div.o -o libaa.so

库名为加了前缀和后缀的libaa.so

(3)动态库的使用

将头文件、test.c、动态库文件发给客户,

gcc test.c -L. -I. -laa

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值