linux一个静态库(.a)如何链接另外一个静态库(.a)

1.不用链接

假如有两个.a   libx.a 里面需要调用liby.a的接口函数

那么,
将代码编译生成libx.a的时候,不需要liby.a的,只需要y里面的头文件即可

但是,当给调用者使用libx.a的时候,必须都加上去,也就是-lx -ly,   不能够只有-lx

(而且注意顺序,-ly -lx都不行)

2.合并两个静态库

如果你非要将两个库链接成一个库,可以合并这两个库变成一个新库。

有一个办法 就是 把第二个.a文件ar -x 编程.o 文件 
然后把第一个.a文件也ar -x 编程.o文件
然后ar -c 把所有的.o文件打包起来

将两个库合并为一个,其实就是解开,获得所有的.o,然后再打包,这种方法当然也适合多个。

1ar -x libabc.a
2ar -x libxyz.a
3ar -c libaz.a  *.o

如何向一个.a中追加.o

1ar rcs libabc.a *.o

2012.3.1更新:

其实搞复杂了,最简单的还是解压出各种.o,然后再合并:

1ar x <library name 1>
2ar x <library name 2>
3......
4ar cs <new library name> <list each extracted object file>


转载于:https://my.oschina.net/u/1024573/blog/410576

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值