Объединить статические библиотеки в один

Как объединить статические библиотеки в один?

У меня есть три статических библиотеки libSignatureLibary_armv6.a, libSignatureLibary_armv7.a и libSignatureLibary_i368.a

Теперь я хочу объединить этот три файла в одну библиотеку, которую можно назвать libSignatureLibary.a

В то время как Googling я нашел lipo, который является инструментом с открытым исходным кодом!

Мне нужно запустить любой дополнительный скриптовый язык для объединения

или в терминальном липо и передать параметр для липо.

Может ли кто-нибудь советовать мне построить общую библиотеку для этих трех.

@thanks заранее Киран

Ответы

Ответ 1

Откройте терминал и перейдите в папку с вашими библиотеками. Затем используйте команду:

lipo -create libSignatureLibary_armv6.a libSignatureLibary_armv7.a libSignatureLibary_i368.a -output libSignatureLibary.a

Ответ 2

ar -x libx264.a
mkdir sub && cd sub
ar -m ../libx264.a 'ar -t ../libx264.a |sort|uniq|grep "\.o"'
ar -x ../libx264.a

теперь у вас есть две версии "макроблока-10.а"

Ответ 3

липо

Создать универсальный файл или работать с ним: преобразовать универсальный двоичный файл в один файл архитектуры или наоборот.

Эта команда объединит двоичные файлы различных архитектур в один файл. Это называется двоичным файлом fat. Вот почему инструмент, который извлекает отдельные архитектуры из толстого двоичного файла (или добавляет архитектуры к одному двоичному файлу), называется lipo, как в liposuction.

Если вы попытаетесь запустить эту команду для двоичных файлов с той же самой аркой, вы получите

fatal error: <binary_list> have the same architectures (<arch>) and can't be in the same fat output file

Обратите внимание, что опция -create не имеет параметров

lipo libSignatureLibary_armv6.a libSignatureLibary_armv7.a libSignatureLibary_i368.a -create -output libSignatureLibary.a

Для проверки существующих архитектур

lipo -info <binary_path>
//or
file <binary_path>

Ответ 4

lipo -create libSignatureLibary_armv6.a libSignatureLibary_armv7.a libSignatureLibary_i368.a -output libSignatureLibary.a