web-dev-qa-db-fra.com

Erreur de commande de l'éditeur de liens: 'ld: symbole (s) non trouvé (s) pour l'architecture i386'

J'ai une erreur au moment de la compilation. Semble être bizarre. cela fonctionnait comme une application de vue détaillée, mais l'utilisation d'une vue unique ne semble pas fonctionner. Voici les détails de l'erreur:

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

Essayez ces étapes:

  1. Ouvrez votre projet en XCode.

  2. Dans la fenêtre/le panneau de gauche de XCode, cliquez sur le nom de votre projet en haut.

  3. Sélectionnez maintenant Cible dans le panneau de droite de XCode.

  4. Sélectionnez Build Phases en haut du panneau de droite. (ici, l'autre option sera Paramètres de construction, Règles de construction)

  5. Dans le même panneau, ouvrez le "Compiler les sources", cochez cette case: tous les fichiers (.m) sont-ils répertoriés? sinon tous les fichiers, cliquez sur (+), signez en bas pour ajouter (.m) les fichiers qui ne sont pas dans la liste

  6. Selon votre erreur, il semble que RssXmlParser ne soit pas là, ajoutez ceci et compilez à nouveau

Cela fonctionnera bien maintenant.

57
iOS Test

ne vois personne suggérer d'aller au terminal et aller dans le répertoire où se trouve le projet et le lancer 

xcodebuild -verbose

pour voir l'erreur détaillée et juste lire l'erreur aide beaucoup de temps

26
vp_gold

J'ai réalisé que je devais utiliser le fichier .xcworkspace à la place du fichier .xcodeproj.

13
Dean

Produit -> Nettoyer puis Produit -> Exécuter :)

7
Oscar

Dans mon cas, j'ai créé par erreur une nouvelle sous-classe de UIView avec des fichiers .h et .c au lieu de fichiers .h et .m. Changer les extensions était facile, mais je ne pensais pas changer le contenu des fichiers .m. Donc, mes fichiers .h avaient

#ifndef My_Project_MPMyView_h
#define My_Project_MPMyView_h

#import <UIKit/UIKit.h>

@interface MPMyView : UIView

@end

#endif

et mes fichiers .m avaient une erreur

#include <stdio.h>

Quand j'ai changé mes fichiers .m en

@interface MPMyView : UIView

@end

@implementation MPMyView

@end

L'erreur de l'éditeur de liens a été corrigée.

2
Kevin

Je ne sais pas comment cela a fonctionné. Mais j'ai simplement fermé le xcode et l'ouvert en cliquant sur le fichier xcworkspace et j'ai travaillé pour moi. Vous pouvez essayer, espérons-le, de résoudre votre problème, merci.

0
yubaraj poudel

Une erreur similaire m'est juste arrivée sur Xcode 6.4. On dirait un bug Xcode.

Mon correctif était d'aller dans le fichier ".o" qui a causé l'erreur, décochez et revérifiez les appartenances cibles dont vous avez besoin.

0
haitham

J'ai rencontré cette erreur en raison de doublons de noms de fichiers (j'avais créé automatiquement des sous-classes NSManagedObjectContext dans les données principales via le menu de l'éditeur). 

Depuis XCODE 5.0, il suffit de quitter et de redémarrer, et xcode devrait le reconnaître et le corriger si vous cliquez sur l’avertissement jaune dans le volet de gauche. 

0
DanWebster

Je pense que vous essayez peut-être de créer deux fichiers .C différents (avec la fonction principale) dans un projet. C ne vous permet d’avoir qu’une entrée principale par projet.

0
Harry.Wang

J'ai résolu le même problème car j'ai créé des composants en tant que projets distincts. Après avoir ajouté les dossiers au projet principal, j'ai oublié de supprimer les fichiers .plist, .string et extra main.m des répertoires du groupe de composants importés.

La suppression de ces problèmes a résolu mon problème, car l'application recevait manifestement des commandes de construction conflictuelles ...

0
Insite Mobilellc

Maintenez la touche alt. Sur la barre d’outils supérieure, allez à 

Produit> dossier de construction propre 

Appuyez sur "dossier de construction propre" et attendez qu'il soit généré et exécuté. Il devrait résoudre les erreurs dans le fichier de construction.

0
Daniel