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

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

我尝试了像ar rcs libbig.a libsmall1.a libsmall2.a这样的东西,它不起作用(由此产生的libbig.a是空的)。

只是在我的机器上试过这个问题,问题似乎是,在将它们添加到新存档之前,需要从存档中提取对象:

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

简单地运行像你一样的rcs产生了一个包含两个.a文件的档案,但是工具(例如nm)不愿意更深入地看这些文件。