web-dev-qa-db-fra.com

Symboles non définis pour l'architecture x86_64 sur Xcode 6.1

Soudain, Xcode m'a lancé cette erreur au moment de la compilation: 

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Format", referenced from:
 objc-class-ref in WOExerciseListViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Après quelques recherches, je peux comprendre que la bibliothèque que j'utilise n'est pas compatible avec la version 64 bits. Mais c’est très étrange puisque je travaille avec les mêmes bibliothèques depuis au moins une semaine sans avoir un seul problème de compilation pendant cette période. Les deux bibliothèques ne sont composées que de plusieurs classes et lorsque je les ai supprimées de mon projet, le même problème s'est posé. Comme je n'ai jamais créé de bibliothèques, je ne sais pas comment trouver celles que j'utilise sont compatibles avec le format 64 bits (?) J'ai également essayé les modifications suivantes pour les architectures du panneau cible: 

  • ajouté $ (ARCHS_STANDARD_INCLUDING_64_BIT) aux architectures
  • construire une architecture active uniquement -> défini sur 'NON' 
  • pour 'architectures valides' -> réglé sur arm64, armv7 et armv7s
  • supprimé le dossier DerivedData et son contenu, nettoyé et reconstitué 

Mais aucun de ces changements ne fonctionne. S'il vous plaît, quelqu'un a-t-il un indice à ce sujet? Merci 

35
batistomorrow

Apparemment, votre classe "Format" est impliquée dans le problème. Vérifiez votre déclaration de cette classe, surtout si vous l'avez faite dans une autre classe, vous avez probablement oublié la @implémentation ou quelque chose de similaire.

41
Banane

Vérifiez si ce fichier est inclus dans Build Phases -> Sources compilées

38
user3894518

Assurez-vous que WOExerciseListViewController est un membre cible. cela a fonctionné pour moi!

enter image description here

19
Youssef Gamil

Je viens d'avoir cette erreur lorsque j'ai ouvert un projet (assez) ancien, créé dans Xcode 4 ~ ish, dans Xcode 6.4. Alors que les cadres liés étaient visibles dans la barre latérale du projet, j'avais oublié qu'il n'y avait que pas de bibliothèques liées dans l'onglet Phase de construction cible. Une fois que j'ai résolu le problème, tout était bien compilé. 

4
auco

Oui, je pense que la bibliothèque que vous utilisez n'est pas compatible avec la version 64 bits, mais vous pouvez résoudre le problème - 

Il vous suffit de naviguer vers Paramètres de construction> Architectures et de remplacer $(ARCHS_STANDARD) par $(ARCHS_STANDARD_32_BIT)

Pour que votre xcode construise votre projet avec une version prise en charge 32 bits.

4
Nishant Mahajan

Je ne liais simplement pas les bibliothèques dans la section "Lier le binaire aux bibliothèques".

2
Alberto M

J'ai résolu le même problème en allant dans Paramètres de construction Xcode et dans Architectures, j'ai modifié L'architecture standard Xcode 6.1.1 en: -

$ (ARCHS_STANDARD_32_BIT)

1
Hemanshu Liya

En fait, j'ai oublié d'écrire ma partie @implementation.

1
chengbo

Je viens d'avoir exactement la même erreur et je l'ai résolu en redémarrant xcode.

Pour moi, le problème est survenu après une mise à jour de svn, le fichier en question a été ajouté au dossier des projets, mais il n'est jamais apparu dans xcode (9.3.1) - jusqu'à ce que je le redémarre.

0
Seif Meddeb

J'ai résolu le problème en supprimant la référence au fichier et en l'ajoutant à nouveau dans le projet. Dans mon cas ça marche.

0
Nikita Teplyakov

Même erreur lorsque j'ai copié/collé une classe et que j'ai oublié de la renommer en fichier .m.

0
zeeawan