Frage

Ich habe diesen Fehler, wenn ich Build + Debug drücken:

ld: duplicate symbol .objc_class_name_BlogTableItemCell in /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o and /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
War es hilfreich?

Lösung

Es scheint, dass Sie die gleiche BlogTableItemCell Klasse zweimal an verschiedenen Stellen des Codes kompilieren. Dies kann in den folgenden Fällen geschehen.

  • Sie haben die gleiche Klasse setzen Umsetzung in zwei verschiedenen Dateien;

  • Sie haben tatsächlich nur ein Implementierung dieser Klasse jedoch Sie verknüpfen auch in Ihrem Projekt einen Rahmen oder Bibliothek, die eine Klasse, deren Name ist genau das gleiche von Ihnen.

Versuchen Sie in dem gesamten Projekt der Klasse zu finden und stellen Sie sicher, nur eine Kopie in Ihrem Projekt zur Verfügung.

Andere Tipps

Sie können auch diese Fehlermeldung erhalten, wenn Sie versehentlich Xcode auto-complete lassen für Import-Anweisungen die‘.m“ Datei für die ‚Duplikat‘ Klasse statt der ‚angeben .h‘.

Für mich ändert ‚Nein Allgemeine Blöcke‘ von Ja auf Nein (unter Targets-> Build Einstellungen-> Apple-LLVM - Code-Generierung) eingeben Bild Beschreibung hier

Ich hatte ein ähnliches Problem aufgrund der schlechten Definieren von consts. Ich hatte einen const in meinem Header definiert:

int const kCropLocationTop = 1;

Dies wurde vermutlich mehrfach importiert. Um dies zu beheben ich den Header geändert def wie folgt:

extern int const kCropLocationTop;

und bewegt, um die Zuordnung der const zum .m-Datei:

int const kCropLocationTop = 1;

Hoffnung, dass jemand, der als unwissend einfachen Ziel c Konzepte ist hilft, wie ich bin!

iPhone: Doppelte Symbolfehler von user576924

beantwortet es für mich richtig. Jedoch wird der säumige Gremlin dieser ZSH Schnipsel zu finden.

grep "import.*\.m" **/*.[hm]

Werden Sie sofort sagen, wo Ihr Fehler ist.

Mit dem Fehler der Quelldatei wurde zweimal in dem Projekt -> Build-Phase -> Compile Sources. Entfernen einer von ihnen das Problem gelöst.

Die häufigste Ursache für diesen Fehler ist, den Import einer xyz.m Datei anstelle der xyz.h Datei. Überprüfen Sie, ob Ihre Importe etwas enthalten wie   #import "----.m"

Just hinzuzufügen; Mit Xcode subclassed verwalteten Objekte (Core Data) erzeugen kann manchmal die generierten Dateien kopieren. Für mich war das Update der generierten Dateien und neu zu generieren, sie zu löschen.

Ich lief in dieses Problem selbst. Für die Liste, hier ist eine andere Möglichkeit:

duplizierte Verknüpfung Zeile in der Projektdatei.

ich verursachte diese Verschmelzung Konflikte auf einem SVN-Update, wenn ich versehentlich eine Zeile dupliziert.

Es passiert mir auch. In meinem Fall ein (nur eine) meiner Kerndaten automatisch generierten Klassen zweimal inseriert wurde. Ich entdeckte die Vervielfältigung durch einen Blick auf Build-Phasen ... Compile Sources. Einfach eines des Ereignisses Löschen wurde das Problem behoben.

Eine andere mögliche Ursache zur Liste hinzufügen ... Sie mistakingly mehrere Konstanten in der Implementierungsdatei erstellt haben, aber außerhalb der Umsetzung, mit dem gleichen Namen.

In HeaderFileOne.m

NSString * const kCoolConstant = @"cool";

In HeaderFileTwo.m

NSString * const kCoolConstant = @"cool";

So eine dieser konstanten Namen Ändern der Compiler-Fehler würde beheben.

ich auch zu diesem Problem konfrontiert. Meine Lösung war Umbenennungs eine globale Variable, die den gleichen Namen wie eine in anderen Klasse. Hoffe, das hilft

Dies kann helfen, jemand

Ich habe diesen Fehler, weil ich eine Viewcontroller duplizieren und umbenannt es dann. Also, wenn ich kompilieren habe ich diesen Fehler. Der Grund dafür war in beiden der Ansicht-Controller ein „float“ war Variable mit dem gleichen Namen heißt „float padding = 10,0“, die ich auf Klassenebene definiert hatte. Umbenennen den Namen der oben genannten Variable in einer der View-Controller mein Problem gelöst.

Das gleiche passierte mir, während ich mit lokalisierbaren xib Dateien spielt, zufällig habe ich erstellt zwei Implementierungsdateien und appereantly, dass das Problem in meinem Fall verursacht. Nach dem Löschen / ohne die Implementierungsdatei neu zu erstellen, den gleichen Fehler zu machen, wurde der Fehler behoben.

Einer unserer Entwickler verließen die „libSoomla *“ Projektdateien in zweimal dort. Ich entfernte die doppelten soomla Dateien, wieder aufgebaut und dass es fest!

Hope es hilft.

Im Mai Fall folgte ich einige Anweisungen, um eine neuere Version von Subversion zu bauen, die mir gerichtet diesen symbolischen Link zu erstellen:

ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

Jetzt bin ich wirklich ein Windows-Typ, damit es nicht sofort offensichtlich für mich war - aber das Entfernen des Link regelte es für mich (nach XCode Neustart):

rm /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain

Puh.

(Der tatsächliche Fehler Ich habe beschrieben, wurde der hier: Buildfehler doppelte Symbole arclite.o )

Stellen Sie sicher, dass Sie nicht .m Datei nicht einführten. Für mich ist das geschehen Ich habe #import „SchoolCommuterHome.m“ statt #import „SchoolCommuterHome.h“

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top