Ich erhalte plötzlich diesen Fehler, wenn ich meine App über den iPhone-Simulator ausführe:
clang: error: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (verwenden Sie -v, um den Aufruf anzuzeigen):
ld: doppeltes Symbol _OBJC_CLASS _ $ _ Algebra5FirstViewController in ... / Algebra5-anwcuftojtxtgkfootneeeqhwztj / Build / Intermediates / Algebra5.build / Debug-iphonesimulator / Algebra5.build / Objects-normal / i386 / ExercisVo Build / Intermediates / Algebra5.build / Debug-iphonesimulator / PSLE Algebra5.build/Objects-normal/i386/PSLE_Algebra5FirstViewController.o für die Architektur i386
Worum geht es?
quelle
Dies kann passieren, wenn dieselbe .m-Datei im Abschnitt "Quellen kompilieren" Ihres Ziels unter "Phasen erstellen" mehrmals referenziert wird. Entfernen Sie doppelte Einträge und es sollte Ihnen gut gehen.
quelle
.m
im Code verwendete Datei NICHT in den "Compile Sources" referenziert wird - wie es meine Situation war.hatte auch dieses Problem durch Deklarieren von a
const * NSString
in der Header-Datei (falsch) anstelle der Implementierungsdatei (korrekt)quelle
Ich habe dieses Problem, weil ich versehentlich die .m anstelle der .h importiert habe. Ich hoffe, das Lesen erspart jemandem mit dem gleichen Problem einige Zeit.
quelle
Ich hatte das gleiche Problem. Habe es gelöst!
Wenn Sie Dateien in ein Projekt importiert haben, überprüfen Sie, ob die .m-Datei (Hauptdatei) unter Ziele (Projektname) -> Phasen erstellen -> Quellen kompilieren vorhanden ist.
Wenn die Datei nicht vorhanden ist, fügen Sie sie mit der angezeigten Schaltfläche (+) Hinzufügen hinzu. Wenn doppelte Dateien vorhanden sind (falls vorhanden), löschen Sie diese.
Drücken Sie nun cmd + shift + k, um das Projekt zu bereinigen. New Build sollte diesen Fehler nicht anzeigen.
quelle
Ich habe einen ähnlichen Fehler beim Hinzufügen von Dateien aus einem anderen Projekt erhalten, wie @paiego erklärt hat. Mein Fehler war, dass ich " Zu Zielen hinzufügen" nicht aktiviert habe . Wie oben erläutert, habe ich die Referenzen gelöscht und die Dateien erneut hinzugefügt, diesmal jedoch " Zu Zielen hinzufügen" aktiviert .
quelle
Ich habe einen ähnlichen Fehler erhalten und ihn auf diese Weise behoben .
quelle
In einem Fall habe ich diesen Fehler beim Ziehen einer neuen Klasse '.h und .m in das Projekt gesehen. Die einzige Lösung, die ich gefunden habe, war, die Verweise auf diese Dateien zu entfernen und sie dann über das Projektmenü wieder hinzuzufügen.
quelle
Ich habe es beim Importieren eines ViewController.m in TableViewController getroffen. Versuchen Sie, '#import "ViewController.m"' zu löschen, wenn es beendet wird. Ich hoffe das hilft!
quelle
'Linker-Befehl mit Exit-Code 1 fehlgeschlagen (verwenden Sie -v, um den Aufruf anzuzeigen)' - Ich habe diesen Fehler beim Ausführen einer Phonegap-Anwendung auf dem iPhone erhalten. Ich habe Build Active Architecture Only in Yes geändert und es hat gut funktioniert.
quelle
Es scheint, dass ich für m die Dateien in das Projekt gezogen habe und danach nicht mehr auf die Datei "Dateien zum Projekt hinzufügen" geklickt habe. Beides war der falsche Ansatz. Ziehen Sie es einfach in den Projektordner (im Finder), in dem sich die anderen .h- und .m-Dateien befinden.
quelle
sobald ich bekam
18 duplicate symbols for architecture i386 clang: error: linker command failed with exit code 1
Für mich lag das daran, dass ich "const NSInteger" in meinem Switch-Fall verwendet habe.
Ich habe die const NSInteger in enum geändert und die Referenz durch enum-Werte ersetzt.
Dies hat den Fehler für mich behoben.
quelle
Dies geschieht entweder, einige Dateien fehlen im Abschnitt "Quellen kompilieren" oder es werden doppelte Einträge für einige Dateien gefunden. In meinem Fall hatte ich doppelte Einträge für zwei Dateien, ich löschte einen Eintrag für jede der Dateien, was mein Problem löste. Hoffe das hilft.
quelle
Ich habe diesen Artikel gefunden , der eine Lösung für mich darstellt. Es bezieht sich auf Xcode 7, bei dem die Standardeinstellung für "Keine gemeinsamen Blöcke" in früheren Versionen "Ja" und nicht "Nein" ist.
Dies ist ein Zitat aus dem Artikel:
Dies führte zu Zirkelverweisen, bei denen eine Klasse, die in meinen Kompilierungsquellen enthalten war, über einen #import in einer anderen Quelldatei (appDelegate.m) referenziert wurde. Dies führte zu doppelten Blöcken für Variablen, die in der ursprünglichen Basisklasse deklariert wurden.
Durch Ändern des Werts in "Nein" konnte meine App mein Problem sofort kompilieren und beheben.
quelle
Ich poste eine neue Antwort darauf, weil ich auf diesen Fehler gestoßen bin und eine andere Lösung verwenden musste, die meiner Meinung nach spezifisch für iOS 9 ist.
Ich musste den Enable Bitcode in den Build-Einstellungen explizit deaktivieren, der im Update automatisch aktiviert wird.
Referenzierte Antwort: Neue Warnungen in iOS 9
quelle
[XCODE 7.1 UPDATE]
Erste Option, die funktioniert hat:
Ich habe das
Deployment Target
von 7.1 auf 8.1 geändert und der Fehler ist verschwunden.Hoffe das hilft jemandem.
UPDATE (Tag 2) : Zum zweiten Mal bin ich in 2 Tagen wieder hier.
An Tag 2 bekam ich zusätzlich zu diesem nervigen Fehler mehr Fehler. Das Problem war eine widersprüchliche Datei, die Xcode nicht erkannte. Ich habe die folgenden Links als Hilfe verwendet:
"_OBJC_CLASS _ $ _ viewsampleViewController", referenziert von:
'ld: Warnung: Verzeichnis für Option nicht gefunden'
Und ultimativ:
Ich habe alles aus den
FrameWork Search Paths
+Compile Resources
+Run Script Phases
+ Pods gelöscht und sie dann erneut installiert, um letztendlich Erfolg zu haben.Das Problem mit meiner Größe (an Tag 2) war eher ein Problem mit widersprüchlichen Dateien oder Dateien, die Xcode nicht erkannte.
Letztendlich half es jedoch, alles (oben und in den Links erwähnt) zu entfernen, häufig zu bereinigen und die Pods / Frameworks / Run-Skriptphasen neu zu installieren.
Hoffe wirklich, dass dies jemandem hilft.
quelle
Durch Ausführen von Xcode 4.6.3 unter OSX 10.7.5 konnte dieser Fehler behoben werden, indem Architekturen von $ (NATIVE_ARCH_ACTUAL) in Native Architecture of Build Machine geändert wurden.
quelle
Ich habe dies einmal erhalten, indem ich (versehentlich) sowohl die .h- als auch die .m-Datei in dieselbe Klasse importiert habe.
quelle
Ich habe diesen Fehler beim Implementieren einer Unterklasse ohne das erforderliche hinzugefügte Framework erhalten (MPMoviePlayerController ohne das MediaPlayer-Framework in diesem Beispiel).
quelle
Ich habe das gleiche Problem bei der Arbeit mit Bolts.framework. Es stellt sich heraus, dass bei einer Beschädigung von Bolts kein erneuter Import das Problem beheben kann. Ich musste zur ursprünglichen Download-Datei zurückkehren und sie komplett neu importieren. Dies hat es sofort behoben. Es war so ein seltsames Problem, dass ich ewig gebraucht habe, um es herauszufinden ... hoffentlich erspart dieser Tipp einigen von Ihnen die gleichen Frustrationen :)
quelle
Dies trat bei mir auf, als ich eine UILabel-Referenz und ein int benannte. Ich bekam keinen Fehler, als ich es nur tippte, als ich versuchte, es auszuführen, sodass ich nicht realisierte, dass dies das Problem war, aber wenn Sie Haben Sie so etwas wie ein Label, das die "Punktzahl" ist, und Sie nennen es Punktzahl, und nennen Sie ein Int, das die Punktzahl ist, auch Punktzahl, dann tritt dieses Problem auf.
quelle
Abweichungen zu diesem Problem können auftreten, wenn eine Bibliothek oder Datei fehlt. Stellen Sie sicher, dass in Ihrem Projektexplorer keine Dateien fehlen: Sie werden rot geschrieben, wenn Xcode sie nicht findet.
quelle
"Link Binary With Libraries" hatte eine alte Projektnamen-Pod-Bibliothek. Nach dem Entfernen behoben.
quelle
Ich hatte das gleiche Problem mit einer Bibliothek und habe alle hier aufgeführten Antworten ausprobiert, und nichts hat geholfen.
Am Ende entfernte ich einfach die Bibliothek aus Link Binary With Libraries und fügte sie dann erneut hinzu, und es funktionierte einwandfrei.
quelle
Die einzige (und unfehlbare) Möglichkeit, dieses Problem zu beheben, besteht darin, einen Test über die Befehlszeile zu erstellen:
xcodebuild -workspace MyProject.xcworkspace/ -scheme MyScheme -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.3.1' test
An diesem Punkt wird Ihre Kompilierung sicherlich fehlschlagen, aber Sie werden alle Verknüpfungsprobleme sehen. In meinem Fall hatte ich mehrere Probleme wie:
Um dies zu beheben, müssen Sie auf Ihrem Ziel BuildSettings-> Linking-> OtherLinkerFlags und das 'Foo'-Framework entfernen.
Um dies zu beheben, muss ich auch die Zielmitgliedschaft der Datei zum UITest-Ziel hinzufügen / überprüfen.
Andere mögliche Probleme werden von xcodebuild aufgeworfen und können leicht behoben werden.
quelle
Einfach CMD+ SHIFT+ putzen K, dann CMD+ bauen + Bhat bei mir funktioniert.
quelle
In meinem Fall hatte ich einen Verweis auf eine Bibliothek in Other Linker Flags. Durch das Entfernen wurde der Fehler behoben.
quelle
Ich hatte den gleichen Fehler. Ich hatte ein Audio-Frame-Werk importiert, das ich nicht mehr verwendete. Ich habe es entfernt (NICHT LÖSCHEN!) Und es wurde erfolgreich erstellt.
quelle