Der Befehl /Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang ist mit dem Exit-Code 1 fehlgeschlagen


77

Ich versuche, eine Anwendung zu erstellen, die PDF mit dem PDF-Kit in Xcode 4.3 liest, aber es gibt mir den folgenden Fehler

ld: duplicate symbol _OBJC_METACLASS_$_OverlayManager in /Users/dt4it/Library/Developer/Xcode/DerivedData/MyPdf4-bmkjglhhvneluqcbwpceiqjvdcmq/Build/Intermediates/MyPdf4.build/Debug-iphonesimulator/MyPdf4.build/Objects-normal/i386/OverlayManager-D0866CFD31A05E68.o and /Users/dt4it/Library/Developer/Xcode/DerivedData/MyPdf4-bmkjglhhvneluqcbwpceiqjvdcmq/Build/Intermediates/MyPdf4.build/Debug-iphonesimulator/MyPdf4.build/Objects-normal/i386/OverlayManager-B31AE7412100AF6D.o for architecture i386
Command /Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

Hilfe bitte?


2
Haben Sie #importoder #includeeine .mDatei in einer Ihrer Dateien?
Christian Schnorr

Mögliches Duplikat des doppelten Symbolfehlers in Xcode
Max MacLeod

Es gibt Hunderte von "doppelten Symbol" -Postings. Was haben Sie getan, um Nachforschungen anzustellen?
Max MacLeod

Überprüfen Sie Ihre Build-Phasen> Kompilieren von Quellen Entfernen Sie die roten. Überprüfen Sie auch, ob Sie doppelte Importanweisungen haben
Erz

Antworten:


95

Projekteinstellungen> Wählen Sie unter "Ziele" Ihr Projekt aus> Phasen erstellen> öffnen Sie "Quellen kompilieren" und "Bundle-Ressourcen kopieren". Überprüfen Sie, ob Dateien in roter Farbe aufgeführt sind. Wenn ja, löschen Sie es einfach. Dann putzen und rennen.

Hat für mich gearbeitet.


3
Bitte geben Sie weitere Informationen an. Was ist, wenn es "Red Stuff" gibt? Dies ist überhaupt nicht hilfreich ...
werdsackjon

2
"Rotes Zeug" impliziert Fehler. Sie können sie nicht verfehlen, wenn sie da sind.
ullstrm

2
Rote Dateien können in Kompilierungsquellen vorhanden sein oder Bundle-Ressourcen kopieren. Ich habe die Antwort so bearbeitet.
Vineeth

Manchmal müssen Sie die Dateien zum Projekt hinzufügen, anstatt die Referenzen aus "Quellen kompilieren" zu löschen.
ULazdins

1
Nur zur Veranschaulichung, NICHT ALLE roten Gegenstände scheinen nicht verbunden zu sein! (Für mich war dies die Main.storyboardund einige Bibliotheken, die rot bleiben). Ich hatte einige falsche Wege inBuild Settings
Longi

36

Mach eine saubere. product > clean. Das Löschen und Neustarten des Terminals hat bei mir nicht funktioniert, die Reinigung jedoch.


3
"Produkt> Bereinigen" hat bei mir nicht funktioniert, "Produkt> Ordner erstellen ..." jedoch. (Sie sehen es, wenn Sie die Alt-Taste gedrückt halten, während Sie sich in der Produkt-Dropdown-Liste befinden.
Adil Hussain

Tolle!! Vielen Dank.
Diyaa

Fantastisch ! Hat meinen Tag gerettet.
Saurabh Padwekar

14

Ich hatte den gleichen Fehler und niemand scheint eine Antwort auf StackOverflow zu haben, die tatsächlich funktioniert. Mein Problem war, als ich versuchte, ein Projekt zu kopieren, das sich in einem Team-Repository befand. Es stellte sich heraus, dass in der Ignorierdatei alle Dateien mit der Erweiterung von *.pchaus Repository-Commits ignoriert wurden. Dies bedeutet, dass beim Abrufen des Projekts aus dem Repo die .pchDatei fehlte und dieser Fehler ausgelöst wurde.

Zum Glück hatte ich noch eine Kopie des Projekts und konnte die .pchDatei einfach kopieren und dann ganz gut kompilieren.

Hoffe das hilft?


5

Gehen Sie zu Zieleinstellungen, Registerkarte Zusammenfassung, suchen Sie "Bereitstellungsziel" und erhöhen Sie es.


2
wo ist das? von was auf was erhöhen?
Esqarrouth

@Esq im Projektnavigator wählen Sie Ihr Projekt aus (blaues Symbol), wählen Sie als nächstes das Ziel im Hauptfenster aus (Optionen dort: Projekt, Ziel 1, Ziel 2, ...). Suchen Sie im Hauptfenster nach "Bereitstellungsziel" und erhöhen Sie es auf etwas Modernes (z. B. 8.1)
fnc12


2

Ich stehe auch vor diesem Problem. Und natürlich habe ich in SO nach Hilfe gesucht, anstatt den gesunden Menschenverstand zu verwenden und die Fehlermeldung zu überprüfen.

Der letzte Teil der Fehlermeldung war derselbe wie Sie.

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 11

Aber ein paar Zeilen darüber habe ich gefunden:

In file included from /Users/Ricardo/Documents/XCode/RealEstate-Finder-v1.2/RealEstateFinder/RealEstateFinder/RealEstateFinder-Prefix.pch:26:
/Users/Ricardo/Documents/XCode/RealEstate-Finder-v1.2/RealEstateFinder/RealEstateFinder/Config/Config.h:174:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
http://www.myserver.com/apps/mobile/rest.php?id=12

Was auf meine Config.h-Datei verweist.

Viel Spaß beim Codieren!


Ich fühle mich wie eine solche Tasse, sie war die ganze Zeit direkt vor mir. Vielen Dank!
Gmeister4

1

Sie haben versehentlich die .m-Datei OverlayManager anstelle der .h-Datei in die eigentliche OverlayManager-Klasse selbst aufgenommen! Grundsätzlich weiß der Compiler bereits, wie die .m-Datei kompiliert wird. Wenn Sie sie jedoch # importieren, versucht der Compiler, sie in dieselbe Quelldatei aufzunehmen, wodurch doppelte Symbole generiert werden. Ihr Fall ist jedoch einzigartig, da Sie die .m der .m-Datei der tatsächlichen Klasse # importieren! Es kompiliert rekursiv Ihre OverlayManager-Klasse.


1

Das gleiche passierte mir und ich stellte fest, dass ich vergessen hatte, das "am Ende des" zu setzen

#import "CPDConstants.h

also stattdessen

#import "CPDConstants.h"

meinst du stattdessen #import "CPDConstants.m"?
Eman87

1
Nein, es ist passiert, als ich vergessen habe, am Ende ein Anführungszeichen zu setzen.
i_duhh_bomb

1

Bei mir tritt dieser Fehler nach dem Klonen des Projekts aus einem Repository auf. Jemand hat einen Leerzeichen aus dem Projektnamen entfernt (umbenannt in "The Project" in "TheProject"), was zu Build SettingsFehlern bei ungültigen Pfaden führte.

Manchmal ist es keine schlechte Idee, die gesamten Fehlerprotokolle zu lesen.


1

Versuchen Sie dies - klicken Sie auf den Namen Ihres Projekts in der Liste der Dateien / Ordner links in Xcode (ganz oben in der Liste). Schauen Sie sich den Abschnitt "Ziele" auf der linken Seite des Fensters rechts an. Wahrscheinlich sind zwei aufgeführt, wobei der zweite ein "Test" -Element ist. Klicken Sie mit der rechten Maustaste auf dieses Element und wählen Sie "Löschen". Versuchen Sie dann erneut, das Projekt auszuführen.


1

Dieses Problem tritt normalerweise auf, wenn mehr als zwei Versionen von XCode installiert sind, in denen verschiedene Swift-Versionen für Ex enthalten sind. XCode 6.4 und XCode 7.3 sind installiert, auf denen Swift 1.2 und Swift 2.0 ausgeführt werden. Aus Versehen versuchen Sie, Code mit der richtigen Version für Ex zu kompilieren. Ihr Projekt ist in Swift 1.2 enthalten und Sie versuchen, es mit xcode 7.3 zu kompilieren. In diesem Fall speichern die Laufwerksdaten Informationen für die schnelle Version. Wenn Sie jedoch versuchen, Code mit dem richtigen XCode zu kompilieren, tritt ein Fehler auf. Um dies zu beheben

  1. Laufwerksdaten löschen
    a. Wählen Sie in Xcode Einstellungen aus

Geben Sie hier die Bildbeschreibung ein

  1. Sobald die Einstellungen geöffnet sind, klicken Sie auf die Registerkarte Standort und dann auf den Pfeil vor dem Pfad "Angetriebene Daten". Es wird der Ordner für angetriebene Daten geöffnet

Geben Sie hier die Bildbeschreibung ein

  1. Beenden Sie Xcode
  2. Löschen Sie alle Laufwerksdaten.
  3. Öffnen Sie das Projekt erneut. Der korrekte XCode-Fehler wurde behoben. !!!!!!

0

Hier ist die * .pch-Datei zu berücksichtigen. Wenn Sie ein Include aus einer externen Bibliothek ausführen, müssen Sie sicherstellen, dass Sie das Include nach #ifdef OBJC und vor #endif ausführen . Wenn Sie versuchen, Ihr Include außerhalb dieser Bedingung auszuführen, kann dies eine Ursache für den Compilerfehler sein.


0

Wäre das in einem Team mit Git passiert? Eines der Teammitglieder fügte eine Klasse aus einer externen Quelle hinzu, kopierte sie jedoch nicht in das Repo-Verzeichnis. Die lokale Version wurde einwandfrei kompiliert, aber die kontinuierliche Integration schlug mit diesem Fehler fehl.

Durch erneutes Importieren der Dateien und Hinzufügen zu dem Verzeichnis unter Versionskontrolle wurde das Problem behoben.


0

Ich hatte auch diesen Fehler. Aber in meinem Fall, und ich bin mir sicher, dass ich hier eins sein werde, hatte ich versehentlich main.m gelöscht, als ich die Löschtaste drückte, nachdem die App auf dem iPhone-Simulator abgestürzt war.

Nach einem Absturz zeigt Xcode die Datei main.m an. Als ich auf Löschen geklickt habe, habe ich versehentlich die Datei main.m aus meinem Projekt gelöscht. Dies ist einfach, wenn ein Dateiname hervorgehoben wird, nicht der Code im Detail Aussicht.

Main.m befindet sich normalerweise in einer Gruppe oder einem Ordner mit dem Namen unterstützende Dateien im Projektdateimanager. Ich hatte nicht bemerkt, dass dies passiert ist, bis es beim nächsten Mal nicht erstellt und ausgeführt werden konnte. Dann musste ich die Fehlermeldung genauer lesen und sah, dass main.m fehlt.

Vielen Dank für Ihre Eingabe, aber für den Fall, dass sich jemand in meiner Position befindet, suchen Sie nach roten Dateinamen, die fehlende Dateien anzeigen, und stellen Sie sie aus einem Backup wieder her, falls vorhanden.


0

Das Hinzufügen der fehlenden Dateien (Dateien in roter Farbe in Xcode-> Ziel-> Build-Phasen-> kompilierte Quellen) zum Zielordner hat das Problem für mich behoben.


0

Mein Problem war, dass ich unter Build-Phasen -> Quellen kompilieren ein Compiler-Flag für eine Datei hinzugefügt habe, das ich jedoch falsch geschrieben hatte. Es sollte sein:

-fno-obj-arc

um zu zeigen, dass diese Datei kein ARC verwendet.


0

Vielleicht ist es für jemanden hilfreich: Ich hatte den gleichen Fehler, nachdem ich mehrere Dateien aus dem Projekt gelöscht hatte. Nach dem Löschen von Commits im Git-Repository ist dieser Fehler verschwunden ...


0

Xcode 8

@ Spoeks Antwort ist richtig,

Aber wenn Sie keine Datei in roter Farbe finden , suchen Sie die mit geringer Deckkraft.

siehe dieses Bild,

Geben Sie hier die Bildbeschreibung ein

Der erste ist da, aber der zweite ist dort notiert, also lösche ihn.


0

Mein Fall behebe ich durch:

Gehen Sie zu Build Phases und überprüfen Sie Compile Sources files. Überprüfen Sie, ob die Datei doppelt vorhanden ist. Behalten Sie einfach eine bei.


0

In meinem Fall war es ein doppelter Swift FlagEintrag in den Build-Einstellungen meines Ziels> Andere schnelle Flags. Ich hatte zwei -XfrontendEinträge darin.


0

In meinem Fall,

Phasen erstellen -> überprüfen Compile Sources - Dateien -> löschen xxx.swift Dateien , dass Xcode sagt „nicht finden‚xxx.swift‘


-1

Das ist mir passiert und ich habe eine Stunde gebraucht, um es zu finden. In meinem Fall hatte ich zu schnell getippt und tat:

[seld method];

anstatt:

[self method];

Ernsthaft! Ich weiß nicht, warum es das nicht besser erkannt hat. Aber es war natürlich auf der Suche nach einer Klasse namens "seld".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.