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,然后再打包,这种方法当然也适合多个。

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

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

1 ar rcs libabc.a *.o

2012.3.1更新:

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

1 ar x
2 ar x
3 ......
4 ar cs file>


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

你可能感兴趣的:(linux一个静态库(.a)如何链接另外一个静态库(.a))