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?
iphone
objective-c
ios
ipad
Eman87
quelle
quelle
#import
oder#include
eine.m
Datei in einer Ihrer Dateien?Antworten:
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.
quelle
Main.storyboard
und einige Bibliotheken, die rot bleiben). Ich hatte einige falsche Wege inBuild Settings
Mach eine saubere.
product > clean
. Das Löschen und Neustarten des Terminals hat bei mir nicht funktioniert, die Reinigung jedoch.quelle
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
*.pch
aus Repository-Commits ignoriert wurden. Dies bedeutet, dass beim Abrufen des Projekts aus dem Repo die.pch
Datei fehlte und dieser Fehler ausgelöst wurde.Zum Glück hatte ich noch eine Kopie des Projekts und konnte die
.pch
Datei einfach kopieren und dann ganz gut kompilieren.Hoffe das hilft?
quelle
Gehen Sie zu Zieleinstellungen, Registerkarte Zusammenfassung, suchen Sie "Bereitstellungsziel" und erhöhen Sie es.
quelle
Löschen
~/Library/Developer/Xcode/DerivedData
hat mir geholfen.Referenz: Link
quelle
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!
quelle
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.
quelle
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"
quelle
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 Settings
Fehlern bei ungültigen Pfaden führte.Manchmal ist es keine schlechte Idee, die gesamten Fehlerprotokolle zu lesen.
quelle
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.
quelle
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
a. Wählen Sie in Xcode Einstellungen aus
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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:
um zu zeigen, dass diese Datei kein ARC verwendet.
quelle
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 ...
quelle
Xcode 8
@ Spoeks Antwort ist richtig,
Aber wenn Sie keine Datei in roter Farbe finden , suchen Sie die mit geringer Deckkraft.
siehe dieses Bild,
Der erste ist da, aber der zweite ist dort notiert, also lösche ihn.
quelle
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.
quelle
In meinem Fall war es ein doppelter
Swift Flag
Eintrag in den Build-Einstellungen meines Ziels> Andere schnelle Flags. Ich hatte zwei-Xfrontend
Einträge darin.quelle
In meinem Fall,
Phasen erstellen -> überprüfen Compile Sources - Dateien -> löschen xxx.swift Dateien , dass Xcode sagt „nicht finden‚xxx.swift‘
quelle
Das ist mir passiert und ich habe eine Stunde gebraucht, um es zu finden. In meinem Fall hatte ich zu schnell getippt und tat:
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".
quelle