Doppelter Symbolfehler in Xcode

8

Ich stoße in Xcode 4.5.1 auf doppelte Duplikatfehler, wenn ich nach dem Hinzufügen eines eigenen Frameworks versuche, ein Projekt zu erstellen. Ich verifizierte die Framework-Dateien für Duplikate und es gibt keine. Aber wenn ich das Framework zu einem Projekt hinzufüge, beschwert es sich mit diesem Fehler. Bitte schlagen Sie vor ..

%Vor%

Vielen Dank im Voraus ..

    
user591410 16.01.2013, 21:04
quelle

5 Antworten

9

Diese Symbole befinden sich in crt.o, dem Startup-Code der Standard-C-Bibliothek. Normalerweise sollte es der Einstiegspunkt einer ausführbaren Datei sein, um globale Variablen und Objekte zu initialisieren. Es wird auch deine Hauptfunktion aufrufen.

Aber für ein Framework sollten Sie es nicht in Ihre Binärdatei aufnehmen, da das Framework nicht main haben sollte. Ich glaube, dass Sie die Option "Link mit Standardbibliothek" in der Zielerstellungseinstellung Ihres Frameworks als "JA" angegeben haben. Dies verbindet crt.o mit Ihrem Framework. Und wenn Sie das Framework in ein Projekt einbinden, wird es doppelte Symbole geben.

Bitte setzen Sie die Option "Link mit Standard Library" in Ihrer Build-Einstellung auf NO.

    
kuuldor 30.01.2013, 01:20
quelle
13

Ich hatte das gleiche Problem mit der Verwendung von zwei Drittanbieter-Framework. Ich habe das gelöst, indem ich "all_load" in den Build-Einstellungen von "Other Linker Flags" entfernt habe.

    
farhad hossain 29.10.2013 09:31
quelle
5

Ihre Anwendung hat eine Implementierung bereitgestellt, in der acht Duplizierungssymbole vorhanden sind.

Es gibt verschiedene Möglichkeiten, dies zu tun:

Sie haben zwei Module, die dieselbe Klasse deklarieren. Vielleicht wird man nicht mehr benötigt?

Sie importieren jede Header-Datei in den Dateien .m und .h :-( Von einem Ort entfernen.)

Sie importieren irgendwo eine .m-Datei. : - (Importieren Sie die .h-Datei anstelle der .m-Datei)

Sie haben in einer beliebigen .h-Datei eine beliebige const-Variable außerhalb (oberhalb) der @schnittstelle {} definiert und deklariert, die dupliziert werden könnte. : - (Tun Sie es in der .m-Datei.)

    
Developer 05.04.2014 07:14
quelle
0

Überprüfen Sie auch, ob globale Variablen wie Konstanten korrekt in .h Datei in der Anwendung definiert sind.

Die korrekte Definition globaler Variablen besteht in der Verwendung der Variablen extern in .h file.

Hinweis: Dies ist kein Problem mit der vorherigen Xcode-Version. Ich hatte das Problem mit Xcode 6.3 und es wurde gelöst.

    
Vinod Supnekar 21.07.2015 09:37
quelle
0

Wenn dieses Problem nur auftritt, wenn Sie die App im Simulator ausführen, wird sie durch Löschen des lokalen Ordners

gelöst %Vor%

Xcode wird es nach dem ersten Build und Lauf wiederherstellen. BITTE MACHEN SIE SICHER, DASS SIE JEDE EINSTELLUNG BACKUP machen (vor allem im Zusammenhang mit Simulator-Geräten).

Getestet auf Xcode Version 7.2.1 (7C1002)

    
eddyce 30.04.2016 15:53
quelle