web-dev-qa-db-fra.com

ignorer le fichier [chemin] manquant architecture requise i386 dans le fichier

Je suis assez nouveau dans le développement Xcode et Iphone et j'ai rencontré le problème suivant:

J'ai ouvert un nouveau projet et ajouté des fichiers * .h et * .a (que j'ai reçus d'un certain fournisseur de périphériques). J'obtiens l'avertissement suivant:

ld: avertissement: ignorer le fichier/Users/udi/Desktop/Xcode/Xcode Projects/Scosche/libmyTrekSDK_armv7.a, architecture requise i386 manquante dans le fichier/Users/udi/Desktop/Xcode/Xcode Projects/Scosche/libmyTrekSDK_armv7.a (2 tranches )

Si j'ignore l'avertissement et que j'essaie d'instancier la classe qui m'est donnée dans le fichier d'en-tête, j'obtiens ces erreurs:

ld: avertissement: ignorer le fichier [Path/FileName.a], architecture i386 requise manquante dans le fichier [Path/FileName.a] (2 tranches)

Symboles non définis pour l'architecture i386:

"_OBJC_CLASS _ $ _ HRMonitor", référencé à partir de:

objc-class-ref dans ViewController.o

ld: symbole (s) introuvable pour l'architecture i386

clang: erreur: la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation)

J'ai vérifié les chemins de recherche du cadre (comme mentionné dans de nombreux autres articles) et c'est clair.

Plus d'informations:

  1. J'utilise Xcode 4.6.1
  2. Les fichiers se trouvent actuellement dans le dossier racine du projet.
  3. J'utilise un tamplate d'application à vue unique.

Appréciez toute aide

24
U_D

Cet avertissement signifie que vous essayez d'utiliser la bibliothèque conçue pour Device (ARM) avec votre simulateur (i386).

Vous pouvez utiliser cette commande de terminal pour créer une bibliothèque universelle:

lipo -create lib_arm.a lib_i386.a -output lib_universal.a

Plus d'informations sur la commande lipo ici .

52
Dmitry Zhukov

Remplacez "Paramètres de construction> Créer uniquement des architectures actives" par "Non" par votre cible.

Cela fait la même chose que la réponse de Dmitry Zhukov mais en le faisant via Xcode au lieu de faire le tour du dos.

7
Lucas Goossen

Si vous travaillez avec un code tiers, gardez à l'esprit que certains SDK peuvent ne pas fonctionner sur le simulateur. La même erreur de construction que j'ai rencontrée a disparu lorsque j'ai exécuté le projet sur l'appareil.

4