2012-07-19 14 views
24

Ich habe einen Fehler bei der Kompilierung. Es scheint komisch zu sein. Es funktionierte als Detailansicht-Anwendung, aber die Verwendung der Einzelansicht scheint nicht zu funktionieren. dies ist die Fehlerdetails:Linker-Befehlsfehler: 'ld: Symbol (e) nicht für Architektur gefunden i386'

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) 
+0

verwenden Xcode 4.3? –

Antwort

57

diese Schritte versuchen:

  1. Ihr Projekt in XCode öffnen.

  2. Im linken Fenster/Panel von XCode klicken Sie auf Ihren Projektnamen oben.

  3. Wählen Sie nun Ziel aus der rechten Seitenwand von XCode.

  4. Wählen Sie Build-Phasen aus der oberen rechten Ecke. (Hier sind andere Optionen Build Build Settings, Build Rules)

  5. Im gleichen Panel öffnen Sie die "Compile Quellen", hier überprüfen: Sind alle Dateien (.m) aufgeführt? wenn nicht alle Dateien auf klicken (+) Zeichen in Boden hinzufügen (.m) Dateien, die nicht in der Liste ist

  6. Wie pro Ihre Fehler scheint es RssXmlParser nicht da, fügen Sie diese und kompilieren wieder

Es wird jetzt gut funktionieren.

+0

Für welche Version von X-Code funktioniert das? Ich kann nicht finden, Ziel auf der rechten Seite zu finden ... –

+1

@CameronTarbell In XCode 5.1 sieht es so aus: http://i.imgur.com/G7OCboX.png – Glide

+0

@iOSTest Ich lief in das gleiche Problem. Ich möchte wissen, warum das passiert. – Glide

0

Ich löste das gleiche Problem, weil ich Komponenten als separate Projekte erstellt. Nach dem Hinzufügen der Ordner zum Hauptprojekt habe ich vergessen, die .plist, .string und extra main.m Dateien aus den importierten Komponentengruppenverzeichnissen zu löschen.

diese löschen löste mein Problem, weil die App offensichtlich war immer widersprüchliche Build-Befehle ...

0

ich diesen Fehler aufgetreten ist, aufgrund von Dateinamen duplizieren (I NSManagedObjectContext Subklassen automatisch in Kerndaten durch das Editor-Menü erstellt hatte).

Ab XCODE 5.0, nur beenden und neu starten und Xcode sollte dies erkennen und es für Sie zu beheben, wenn Sie

2

In meinem Fall im linken Bereich auf die gelbe Warnung klicken, habe ich versehentlich eine neue Unterklasse von UIView mit .h und .c Dateien anstelle von .h und .m Dateien. Ändern der Erweiterungen war einfach, aber ich habe nicht daran gedacht, den Inhalt der .m Dateien zu ändern. Also meine .h Dateien hatte

#ifndef My_Project_MPMyView_h 
#define My_Project_MPMyView_h 

#import <UIKit/UIKit.h> 

@interface MPMyView : UIView 

@end 

#endif 

und meine .m Dateien falsch

hatte
#include <stdio.h> 

Wenn ich meine geändert .m Dateien

@interface MPMyView : UIView 

@end 

@implementation MPMyView 

@end 

Der Linker Fehler wurde behoben.

13

Ich erkannte, dass ich die .xcworkspace-Datei anstelle der .xcodeproj-Datei verwenden musste.

+1

Wow, ich fühle mich jetzt sehr dumm. – Machado

+0

Oh mein Gott. Es hat funktioniert ... aber warum? – Fomentia

+0

Das hat für mich gut funktioniert, aber ich würde auch gerne wissen warum. Irgendeine Erklärung? – Phantomazi

0

Ein ähnlicher Fehler ist mir bei Xcode 6.4 passiert. Scheint wie ein Xcode-Bug.

Mein Update war es, zu der ".o" -Datei zu gehen, die den Fehler verursacht hat, deaktivieren Sie und überprüfen Sie Zielmitgliedschaften, die Sie benötigen.

7

Produkt -> Sauber dann Artikel -> Ausführen :)

0

ich denke, es könnte sein, dass Sie versuchen, zwei verschiedene .C-Datei (mit Hauptfunktion) in einem Projekt zu erstellen. C erlaubt Ihnen nur einen Haupteingang für jedes Projekt.

26

sehe niemanden in das Verzeichnis Terminal und gehen Sie zu gehen was darauf hindeutet, wo das Projekt ist und

xcodebuild -verbose

laufen detaillierte Fehler zu sehen und zu lesen nur den Fehler hilft viel von der Zeit

+0

Dies ist nicht genau eine Antwort, aber diese + ausgewählte Antwort hat mir geholfen, mein Problem zu lösen! Persönlich hatte ich zwei .m-Dateien (die den gleichen Zweck hatten) in der Liste der .m-Dateien. Ich entfernte einen und baute ihn wieder auf und das löste das Problem. –

0

Ich weiß nicht, wie es funktioniert hat. Aber ich schloss einfach den xcode und öffne wieder, indem ich auf xcworkspace file und arbeitete für mich. Sie können versuchen, hoffentlich kann dies Ihr Problem zu lösen, danke.

0

Halten Sie die Alt-Taste gedrückt. in der oberen Symbolleiste auf

Produkte gehen> bereinigter Build-Ordner

Press "clean build Ordner" und warten, bis es zu bauen und läuft. Es sollte alle Fehler in der Build-Datei beheben.

Verwandte Themen