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?

Eman87
quelle
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.

ullstrm
quelle
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.

Redux
quelle
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?

Boeckm
quelle
5

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

fnc12
quelle
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
3

Löschen ~/Library/Developer/Xcode/DerivedDatahat mir geholfen.

Referenz: Link

TharakaNirmana
quelle
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!

Ricardo
quelle
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.

CodaFi
quelle
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"
i_duhh_bomb
quelle
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.

Longi
quelle
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.

Nimmy
quelle
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. !!!!!!
Neeraj Pathak
quelle
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.

smileBot
quelle
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.

Rüdiger
quelle
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.

Eddie.Power_AU
quelle
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.

Akbar
quelle
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.

Jeffrey Sun.
quelle
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 ...

Sandr
quelle
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.

Mohammad Zaid Pathan
quelle
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.

appiconhero.co
quelle
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.

newDeveloper
quelle
0

In meinem Fall,

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

User18474728
quelle
-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".

Badweasel
quelle