Xcode 4 Final - question « ARMv6 ARMv7 » tout lien avec ARMv6 libs
-
24-10-2019 - |
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
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,