Ответ 1
Откройте терминал и перейдите в папку с вашими библиотеками. Затем используйте команду:
lipo -create libSignatureLibary_armv6.a libSignatureLibary_armv7.a libSignatureLibary_i368.a -output libSignatureLibary.a
Как объединить статические библиотеки в один?
У меня есть три статических библиотеки libSignatureLibary_armv6.a, libSignatureLibary_armv7.a и libSignatureLibary_i368.a
Теперь я хочу объединить этот три файла в одну библиотеку, которую можно назвать libSignatureLibary.a
В то время как Googling я нашел lipo, который является инструментом с открытым исходным кодом!
Мне нужно запустить любой дополнительный скриптовый язык для объединения
или в терминальном липо и передать параметр для липо.
Может ли кто-нибудь советовать мне построить общую библиотеку для этих трех.
@thanks заранее Киран
Откройте терминал и перейдите в папку с вашими библиотеками. Затем используйте команду:
lipo -create libSignatureLibary_armv6.a libSignatureLibary_armv7.a libSignatureLibary_i368.a -output libSignatureLibary.a
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.а"
Создать универсальный файл или работать с ним: преобразовать универсальный двоичный файл в один файл архитектуры или наоборот.
Эта команда объединит двоичные файлы различных архитектур в один файл.
Это называется двоичным файлом 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>
lipo -create libSignatureLibary_armv6.a libSignatureLibary_armv7.a libSignatureLibary_i368.a -output libSignatureLibary.a