Question

Jusqu'à Xcode 4 final (j'utilisais 3.latest et 4 GM pour le temps qu'il était disponible) cela ne se produit pas. Quand je suis passé à Xcode 4 version finale, j'ai commencé à obtenir une erreur de liaison tout en essayant de relier la version ARMv7 avec ma bibliothèque non ARMv7 (mon projet est défini avec la valeur par défaut ARMv6 standard ARMv7 architectures valides):

ld: warning: ignoring file ../bin/iOS static/arm/libssl.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../bin/iOS static/arm/libcrypto.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7: -- list of symbols --

La version ARMv6 compile très bien, mais l'ensemble du processus de compilation échoue avec 77 erreurs de liaison.

Je comprends que c'est le comportement attendu, il l'habitude de lien vers ARMv7 avec un ARMv6 lib. Le correctif met mon projet à ARMv6 seulement. Ma question est ici: pourquoi ce travail dans les versions précédentes de Xcode?

Si je mets à ARMv6 seulement, je commence à avoir cet avertissement:

Check dependencies

[BWARN]warning: all apps should include an armv7 architecture (current ARCHS = "armv6").

Je ne aime pas voir les avertissements :-) Toute personne ayant des problèmes similaires?

Merci,

Fernando

Était-ce utile?

La solution

Je viens d'avoir la construction active que l'architecture Oui dans le projet -> Construire Réglage -.> Onglet Architectures

Autres conseils

Dans iOS SDK 4.3, il ressemble à l'éditeur de liens tout simplement refuser d'utiliser une bibliothèque ARMv6 dans un binaire ARMv7 -. Ce ne fut pas le cas avant

C'est pourquoi je devais mettre à jour le http://code.google.com/ p / ios-statiques-bibliothèques / projet pour générer à la fois ARMv6 et versions ARMv7 des bibliothèques.

J'ai ajouté cadre 3rd Party avec certaines classes de démonstration dans le projet, mais une fois mis en œuvre, je réussi à retirer ces classes de démonstration et depuis lors, l'erreur a commencé à venir Erreur "Ld: ........., le fichier est universel, mais ne contient pas (n) tranche ARMv6 pour l'architecture ARMv6"

Après avoir gratté la tête pendant une journée entière, je trouve cette solution le lendemain peut-être utile pour les copains d'autres iphone coz Je sais que la douleur

Objectifs -> "Votre cible Projet" -> Get Info -> Construire l'architecture active uniquement réglé sur YES

thats it ..

eu le même problème. Mais la raison était différente, je suppose. J'utilisais le fichier bibliothèque.Procédé construit pour simulateur et essayer de l'exécuter sur l'appareil .. venu pour savoir que j'ai besoin différents fichiers .a pour simulateur et appareil. J'espère que cela aide quelqu'un;)

Bien que je ne sais toujours pas pourquoi cela commencé à se produire que dans le Xcode 4 version finale, je trouve que mes libs externes (ssl et crypto) ont été compilées à la fois contre ARMv6 et ARMv7 dans le projet de code Google il y a très peu de jours:

http://code.google.com/p/ios-static-libraries /

Cela corrigera le problème si vous définissez deux chemin de recherche de bibliothèque différente: un pour ARMv6, un pour ARMv7.

Merci,

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