Создание iPhone статическая библиотека для armv6 и armv7, который включает другую статическую библиотеку

У меня есть проект XCode, который имеет "основную" статическую цель библиотеки, которая включает/связывает в набор других статических библиотек из других проектов XCode.

Когда создание основной библиотеки предназначается для "Оптимизированного (armv6 armv7)", ошибка происходит в последней фазе, во время шага CreateUniversalBinary. Для каждого.o файла библиотек, который включен основной библиотекой, о следующей ошибке сообщают (например, файл FBConnectGlobal.o):

warning for architecture: armv6 same member name (FBConnectGlobal.o) 
in output file used for input files: /Developer_Beta/Builds/MTToolbox/MTToolbox.build/Debug-iphoneos/MTToolbox.build/Objects-normal/armv6/libMTToolbox.a(FBConnectGlobal.o) 
and: /Developer_Beta/Builds/MTToolbox/MTToolbox.build/Debug-iphoneos/MTToolbox.build/Objects-normal/armv7/libMTToolbox.a(FBConnectGlobal.o) 
due to use of basename, truncation and blank padding

В конце XCode говорит, что сборка успешно выполнилась. Однако при пользовании заключительной статической библиотекой в проекте приложения, это не создаст, потому что это находит дублирующиеся символы в одной части сборки (armv6) и пропускает символы в другой части сборки (armv7).

Какие-либо идеи, как зафиксировать это?

M

5
задан Fabian N. 25 May 2016 в 14:47
поделиться

2 ответа

Не встраивайте библиотеки в другие библиотеки - это рецепт путаницы, ошибок дублирования символов и трудностей для отладки. Проверьте этот вопрос: Как я могу избежать ошибок «повторяющихся символов» в xcode с общими статическими библиотеками?

3
ответ дан 14 December 2019 в 01:05
поделиться

Я не думаю, что это вообще ответ. Он будет полностью работать, если у вас нет двух архитектур. В примере, приведенном в ссылке, можно связать библиотеки a, b и c в одну библиотеку и связать с ней.

Проблема, с которой столкнулся Карл, заключается в том, что в библиотеке есть две разные архитектуры (arm6 и arm7), и компоновщик не может правильно их решить.

Я нашел проблему. Насколько я могу судить, это ошибка в libtool. См. Мой пост для решения:

https://binaryfinery.wordpress.com/2010/06/11/universal-static-library-problem-in-iphone-sdk/

5
ответ дан 14 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: