分类: C/C++
2018-02-13 10:20:54
最近打包SDK, 需要把多个*.so文件合并。
通过google发现,*.so文件不能直接合并,因为其中已经没有重定向信息。但多个静态库文件是可以合并成一个动态库文件的。
先把所有要打包的库编译生成静态库,然后使用如下命令把它们合并成一个*.so:
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive
原文链接:http://blog.csdn.net/huangkangying/article/details/53119999
另外合并多个.a库的方法是:
.a 文件的结构和.tar文件就没有什么区别。 x 命令解出来, a 命令添加, t命令列表
假设A.a, B.a C.a 在/usr/local/lib目录下
mkdir /tmp/libABC
cd /tmp/libABC
ar x /usr/local/lib/A.a
ar x /usr/local/lib/B.a
ar x /usr/local/lib/C.a
ar cru libABC.a *.o
ranlib libABC.a