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

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>
相关文章
相关标签/搜索