2-静态库的创建和使用

1. 创建静态库

d => 从归档文件中删除文件
m[ab] => 在归档文件中移动文件
p => 打印在归档文件中找到的文件
q[f] => 将文件快速追加到归档文件中
r[ab][f][u]  => 替换归档文件中已有的文件或加入新文件
s => 作为 ranlib 工作
t => 显示归档文件的内容
x[o] => 从归档文件中分解文件

2. 静态库的创建实例

把 add.o 和 sub.o 这两个文件打包成libbase.a
ar -r libbase.a add.o sub.o

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

解压静态库
ar -x libbase.a // 解压所有文件
ar -x libbase.a -o add.o // 只解压 add.o文件


3. 创建及使用静态库的步骤

1)编写源代码

int sub(int a, int b) {
	return a - b;
}


int add(int a, int b) {
	return a + b;
}


int main() {
	printf("10 + 20 = %d\n", add(10, 20));
	printf("20 - 10 = %d\n", sub(20, 10));


	return 0;
}

2)生成.o文件
gcc -c --static add.c  sub.c
说明: static选项向编译器指明 如果操作系统支持动态链接,该选项将阻止其生成动态链接库。一般而言, 加static生成的文件会较大。


3)生成静态库文件
ar -r libbase.a add.o sub.o
说明: 生成静态库时,名称尽量以lib开头


ar -t libbase.a  查看静态库中包含的内容


4)使用静态库文件
gcc -c main.c -o main.o #生成.o文件
gcc main.o libbase.a -o main  #生成二进制程序

gcc main.o -L. -lbase -o main # 生成二进制程序
./main # 运行二进制程序


说明:-Ldir 选项的含义是在 dir 这个目录中查找要链接的库文件 
 -lname 是指链接库名为 libname.a 的文件


如上内容, 如有错误, 欢迎指正。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值