Я пытаюсь построить большую статическую библиотеку, объединяющую две статические библиотеки. В настоящее время я использую команду «ар», извлечение объектов, например, от «аа» и «ба», а затем эти объекты повторной сборки, используя «AR» снова:Как извлечь статические библиотеки, содержащие повторяющиеся файлы объектов?
$ ar x a.a
$ ar x b.a
$ ar r merged.a *.o
К сожалению, это не работает для моей цели, поскольку aa имеет внутри разных объектов с ИМЯ ИМЯ. Команда «ar» извлекает повторяющиеся объекты и заменяет уже извлеченные одноименные имена. Даже с тем же именем эти объекты имеют разные символы, поэтому я получаю неопределенные ссылки, поскольку некоторые символы пропускаются вместе с замененными файлами.
У меня нет доступа к исходным объектам и уже пробовал «ar xP» и «ar xv» и много «арфа». Кто-нибудь может помочь мне показать, как объединить эти библиотеки?
Заранее спасибо.
Отлично, у меня была такая же проблема, и этот скрипт решил проблему. Но я считаю, что вы должны написать '' 'content_descripter [48:58]' '' вместо 48:57. Поле размера файла составляет 10 байт вместо 9 байтов в соответствии с [Википедия] (https://en.wikipedia.org/wiki/Ar_ (Unix)). –
Кроме того, если вы обрабатываете BSD-вариант формата файла .a (например, на Mac), имя файла может быть частью части тела, как описано в [Wikipedia] (https://en.wikipedia.org/wiki/Ar_ (Unix)). Таким образом, вам также понадобится логика, чтобы раздеть ее. –