Linux复习之静态库的建立

库是在链接阶段和相应的.o文件生成可执行文件,根据链接方式的不同,可以分为静态库与动态库。
当使用静态库时,连接器会找出程序所需的函数,将它们复制到执行文件中,因为是完整复制,所以一旦链接成功,可执行文件在静态库不存在的情况下依然可以执行。
动态库与静态库不同,动态库会在程序内留下一个 标记,当程序执行时,指明必须载入的库文件,所以当执行文件时才动态加载库文件,使用动态库必然会节约空间。
在linux下进行链接首先会链接动态库,也就是如果不特别指定,会默认链接动态库。

静态库的建立

1.先建立并编辑bank.h与sort.c文件,bank.h内容如下:
在这里插入图片描述
程序sort.c提供了函数sortaz,功能是对程序进行排序:
在这里插入图片描述
2.将sort.c文件生产可执行的sort.o文件
指令:gcc -c sort.c
3.创建静态库并将目标文件加入库中
指令:ar -r 目标库文件名称 目标文件名称
ar -r libmath.a sort.o
在这里插入图片描述
其中,ar是创建静态库的命令,选项-r是将目标文件加入到静态库中,目标库文件名有个不成文的规定,一般用lib开头,以.a结尾,目标文件列表中的目标文件之间用空格隔开。
例如:ar -r libstring.a filel.o file2.o file3.o
ar指令的选项主要由一下几种:
[r]:将目标文件加入到静态库
[t]:显示今天库中的文件
[a]:将目标文件追加到静态库文件现有文件之后
[b]:将目标文件追加到静态库文件现有文件之前
[d]:从指定的今天库中删除指定文件
[x]:从指定的静态库中提取目标文件
[p]:把静态库文件中指定的文件输出到标准设备
[q]:快速的追加文件到静态库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值