2011-08-27 2 views
0

Mon application se construit bien pour le simulateur, mais pas l'appareil:Xcode d'émission ARMv7

ld: avertissement: le fichier en ignorant /Users/newuser/Downloads/release-1.5-tag/build/Release-iphoneos/parsekit .a, le fichier a été construit pour l'archive qui n'est pas l'architecture étant liée (armv7)

J'utilise le lib de ParseKit qui ne semble pas aimer être mélangé avec armv7.

Je pense que je dois faire une forme de liaison avec la bibliothèque? Mais comment?

Merci.

Répondre

1

Les chances sont que vous devrez recompiler ParseKit pour l'architecture armv7. Suivez-vous le instructions for iPhone sur la page d'accueil de ParseKit? Il ne semble pas mentionner explicitement armv7, mais je suppose que si vous ajoutez parsekit.a en tant que cible du fichier projet de ParseKit à votre propre fichier projet, XCode devrait reconnaître que la cible doit être reconstruite pour armv7. Remarque: les instructions sont pour XCode 3 et je suppose que vous utilisez XCode 4, mais l'idée générale devrait être la même.

+0

J'ai suivi cela et cela a toujours fonctionné, mais maintenant quand j'essaie de déployer sur le périphérique, l'erreur se déclenche. Comment puis-je recompiler parsekit pour armv7? il offre des options Intel. – FBryant87

1

parsekit.a est une bibliothèque statique et doit être liée statiquement aux binaires ayant le même ABI. Ainsi vous avez les options suivantes:

  1. Construisez-vous le code pour le même ABI que parsekit.a a;
  2. Construire parsekit.a pour l'armv7;
  3. Créer une analyse en tant que bibliothèque partagée;
  4. Ecrivez un wrapper pour parsekit.a qui sera construit en tant que bibliothèque partagée et exposera toute l'API dont vous avez besoin.
+1

Merci, l'étape 2 est-elle simple? Comment ferais-je cela? – FBryant87

+0

Je ne suis pas familier avec xcode mais cela devrait être fait avec une seule option car elle est contrôlée par un seul drapeau de compilateur. Normalement tout code qui compile pour armv5 ou armv6 peut être compilé pour armv7. –

2

Vous semblez avoir lié la bibliothèque, seulement elle n'est pas construite pour armv7.

Le projet ParseKit Xcode a une cible appelée ParseKitMobile, qui est conçue pour armv7. Essayez d'utiliser ça.

enter image description here

Vous pouvez également essayer de modifier le paramètre "SDK de base" pour iOS, qui devrait vous donner des options pour armer l'architecture.

+0

Il dit que l'architecture de Parsekit utilise Mac OS donc les options sont différentes, des idées? – FBryant87

+0

J'ai regardé ParseKit et mis à jour ma réponse. –

Questions connexes