1.不用连接web
假若有两个.a libx.a 里面须要调用liby.a的接口函数
那么,
将代码编译生成libx.a的时候,不须要liby.a的,只须要y里面的头文件便可
可是,当给调用者使用libx.a的时候,必须都加上去,也就是-lx -ly, 不可以只有-lx
(并且注意顺序,-ly -lx都不行)编程
2.合并两个静态库函数
若是你非要将两个库连接成一个库,能够合并这两个库变成一个新库。spa
有一个办法 就是 把第二个.a文件ar -x 编程.o 文件
而后把第一个.a文件也ar -x 编程.o文件
而后ar -c 把全部的.o文件打包起来code
将两个库合并为一个,其实就是解开,得到全部的.o,而后再打包,这种方法固然也适合多个。orm
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更新:ci
其实搞复杂了,最简单的仍是解压出各类.o,而后再合并:it
1 |
ar x <library name 1> |
2 |
ar x <library name 2> |
3 |
...... |
4 |
ar cs <new library name> <list each extracted object file > |