Question

Je suis en train de compiler ZeroMQ C de liaison afin de pouvoir l'utiliser sur iPhone, voici mes options de configuration:

./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

Il configure et compile en fait très bien, mais quand je l'ajoute à la section Cadres Xcode, je reçois avertissement: ld: warning: in /path/to/app/libzmq.a, file was built for unsupported file format which is not the architecture being linked (armv7) et beaucoup de symbole non trouvé des erreurs

.

Si je change l'architecture active actuelle de ARMv6 à ARMv7, un message d'avertissement changera à ARMv6. Qu'est-ce que je fais mal?

Merci, Dan

Était-ce utile?

La solution

On dirait que vous construisez un binaire universel ARMv6 / ARMv7 pour l'iPhone (ce qui est la valeur par défaut, ce qui est logique). Cela signifie que vous devez construire une bibliothèque universelle pour relier contre. Construire les bibliothèques, puis utilisez lipo de combiner les deux.

Par exemple, construire une ARMv6 et placez-le à armv6/libfoo.a, et celui ARMv7 à armv7/libfoo.a. Ensuite, exécutez

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

pour créer le libfoo.a de bibliothèque universelle.

Autres conseils

Étant donné le message d'avertissement de ld, je suppose que vous n'êtes pas est la compilation de la bibliothèque pour la plate-forme correcte. Et étant donné que vous utilisez configure, je suppose que vous essayez de compiler la bibliothèque en dehors de Xcode, puis l'amener dans Xcode plus tard pour créer un lien dans.

vous pouvez peut-être essayer d'exécuter configure pour configurer vos têtes, mais faire l'étape de compilation réelle à l'intérieur Xcode?

Il y a beaucoup de questions connexes ici sur le SO sur la compilation tiers (externes) C ou C ++ bibliothèques pour une utilisation dans des projets iPhone.

Création bibliothèque statique pour iPhone

TiMidity: besoin d'aide compiler cette bibliothèque pour l'iPhone

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top