Вопрос

Я пытаюсь собрать привязку zeromq c, чтобы иметь возможность использовать его на iPhone, вот мои параметры настройки:

./configure --host=arm-apple-darwin --enable-static=yes --enable-shared=no CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1 CFLAGS="-pipe -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=3.1.2 -gdwarf-2 -mthumb -I/Library/iPhone/include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -mdynamic-no-pic" CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar AS=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/as LIBTOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool STRIP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/strip RANLIB=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib

Он на самом деле настраивает и компилирует нормально, но когда я добавляю его в раздел Xcode Frameworks, я получаю предупреждение: ld: warning: in /path/to/app/libzmq.a, file was built for unsupported file format which is not the architecture being linked (armv7) И много символов не нашли ошибки.

Если я изменим текущую активную архитектуру из ARMV6 в ARMV7, предупреждающее сообщение изменит его в ARMV6. Что я делаю неправильно ?

Спасибо, Дэн

Это было полезно?

Решение

Похоже, вы строите Universal ARMV6 / ARMV7 Binary для iPhone (это значение по умолчанию, так что имеет смысл). Это означает, что вам нужно построить универсальную библиотеку для связи против. Строить обе библиотеки, а затем используйте lipo объединить два.

Например, построить ARMV6 One и поместите его в armv6/libfoo.a, и ARMV7 один в armv7/libfoo.a. Отказ Затем пробежать

lipo -arch armv6 armv6/libfoo.a -arch armv7 armv7/libfoo.a -output libfoo.a -create

Создать универсальную библиотеку libfoo.a.

Другие советы

Учитывая предупреждающее сообщение от ld, Я думаю, вы не составляете библиотеку для правильной платформы. И дано вы используете configure, Я предполагаю, что вы пытаетесь составить библиотеку за пределами XCode, а затем принести его в XCODE, чтобы связать его.

Возможно, вы можете попробовать запустить настроить, чтобы настроить заголовки, но сделайте фактическую шаг компиляции внутри XCode?

Здесь здесь находятся много связанных вопросов, так что о компиляции сторонних (внешних) библиотек C или C ++ для использования в проектах iPhone.

Создание статической библиотеки для iPhone

GETIVED: нужна помощь в компиляции этой библиотеки для iPhone

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top