我正在尝试构建一个合并两个静态库的大静态库。在那一刻我使用的是“AR”命令,再使用“AR”提取物,例如,从“AA”和“BA”,然后重新组装这些对象:如何提取包含重复目标文件的静态库?
$ ar x a.a
$ ar x b.a
$ ar r merged.a *.o
遗憾的是它不工作为了我的目的,因为aa在同一个名称内部有不同的对象。 'ar'命令正在提取重复的对象,并用相同的名称替换已提取的对象。即使使用相同的名称,这些对象也具有不同的符号,所以我得到未定义的引用,因为一些符号与替换的文件一起被遗漏。
我没有访问原始对象,已经尝试过'ar xP'和'ar xv'以及很多'ar stuff'。有没有人可以帮助我展示如何合并这些库?
在此先感谢。
太棒了,我有同样的问题,这个脚本解决了这个问题。 但我相信你应该写'''content_descripter [48:58]'''而不是48:57。根据[Wikipedia](https://en.wikipedia.org/wiki/Ar_(Unix)),文件大小字段为10个字节,而不是9个字节。 – 2016-08-01 04:49:32
此外,如果您处理.a文件格式的BSD变体(例如,在Mac上),文件名可以是正文部分的一部分,如[Wikipedia](https://en.wikipedia.org/wiki/Ar_(UNIX))。所以你也需要一个逻辑去除它。 – 2016-08-01 04:57:29