一尘不染

如何将多个库档案(.a)打包到一个档案文件中?

linux

如何在Linux上将多个存档文件转换为一个大存档文件(使用binutils ar和/或GCC)。

我试图做类似的事情ar rcs libbig.a libsmall1.a libsmall2.a,但它不起作用(结果libbig.a为空)。


阅读 192

收藏
2020-06-07

共1个答案

一尘不染

刚在我的机器上尝试过,问题似乎是您需要从归档中提取对象,然后再将它们添加到新的归档中:

ar x libsmall1.a
ar x libsmall2.a
ar rcs libbig.a *.o

像您一样简单地运行ar rcs会生成一个包含两个.a文件的存档,但是工具(例如nm)不愿意深入研究这些文件。

2020-06-07