xcode 4.6.1 und LLVM 4.2: ld: 2 doppelte Symbole für Architektur armv7
Mein Erster Versuch mit Gebäude ein Unternehmen iOS-library/framework war diese Woche, indem Sie die folgenden Schritte fanden bei dieser blog-post hier.
Gründen über diese Frage, ich kann nur verknüpfen, wenn Gebäude für ein Gerät und nicht für simulator.
Aber jetzt bin ich immer einen sehr skurrilen Fehler:
ld: 2 doppelte Symbole für Architektur armv7-clang: error: linker
command failed with exit code 1 (use-v zu sehen invocation)
Den Zeilen in Frage vorschlagen:
symbol duplizieren _OBJC_CLASS_$_iContactsGridCell in:
/Users/*/Desktop/Projects/contactservice/branch/ContactServicesClient/DerivedData/iContacts/Build/Intermediates/iContacts.build/Debug-iphoneos/iContacts-5.1.build/Objects-normal/armv7/iContactsGridCell.o
/Applications/Xcode.app/Contents/Developer/Library/Frameworks/athium-iOS.Rahmen/athium-iOS
duplizieren-symbol _OBJC_METACLASS_$_iContactsGridCell in:
/Users/*/Desktop/Projects/contactservice/branch/ContactServicesClient/DerivedData/iContacts/Build/Intermediates/iContacts.build/Debug-iphoneos/iContacts-5.1.build/Objects-normal/armv7/iContactsGridCell.o
/Applications/Xcode.app/Contents/Developer/Library/Frameworks/athium-iOS.Rahmen/athium-iOS
Offensichtlich ist die Klasse in Frage iContactsGridCell.h
Die Klasse selbst erbt von der Zelle.h
@interface iContactsGridCell : Cell
Die Klasse Zelle.h ist Teil des Frameworks ist, wenn ich nicht importieren Sie die richtige Datei ist, dann, wie erwartet, bekomme ich einen semantischen Fehler: Nicht finden können, interface-Deklaration für Zelle etc etc.
Jedoch, wenn ich es importieren möchte, bekomme ich folgende doppelte Fehler.
Diese Datei ist nicht im Lieferumfang enthalten überall sonst in das Projekt, abgesehen von iContactsGridCell.h!
Die Datei Zelle.h wiederum nur eine Klasse unter dem Rahmen:
@interface Cell : NSObject
@property (strong,nonatomic) UIView *view;
@property CGRect rect;
@property int UID;
@property BOOL highlighted;
@property UIColor *b_colr;
- (id) initWithRect:(CGRect)frame;
- (BOOL) hasCoordinates:(CGPoint)coord;
- (void) ripple;
- (void) cubefy;
- (void) flipfy;
- (void) rotate;
- (void) setBg:(UIColor *)bg withAlpha:(CGFloat)alpha;
- (void) highlight;
- (void) unhighlight;
- (void) updateWithRect:(CGRect)rect;
@end
- Warum auf der Erde bin ich immer die doppelte Fehler?
- Was könnte die Ursache sein?
- Wie könnte es behoben?
- Wie bekomme ich mehr info mehr Informationen in der Ausgabe von wo werden die Duplikate gefunden?
PS: ich habe den intructions gefunden auf dem blog schreiben. Noch kann ich nicht den link für den simulator (immer eine falsche Architektur-Fehler), so meine Vermutung, dass vielleicht etwas gebrochen ist, in den Rahmen und nicht das Projekt selbst. Könnte dies der Grund sein für den doppelten Fehler?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es mehrere Orte, wo dieser Fehler kann entstehen. Ich würde Folgendes tun, um die Suche zu starten für das problem:
iContactsGridCell *myObj;
iContactsGridCell *myObj;
Stellen Sie sicher, dass Ihr nichts zu tun, wie diese: #import
"iContactsGridCell .m"
Oder so: #import "iContactsGridCell.h" #import "iContactsGridCell.h"
Wichtigste Punkt: Das ist alles was ich denken kann aus der Spitze von meinem Kopf. Aber die Sache zu erinnern ist, dass irgendwo in Ihrem Projekt befindet sich zwei Objekte, Klasse Erklärungen usw.. Das sind die gleichen. Und der compiler beschwert sich, weil es.
, Warum der Compiler würde sich beschweren (mehr info): diese Informationen sind Zwar wirklich "unnötigen" es ist gute Praxis, wie ein Programmierer zu verstehen, was Los ist unter der Haube und wird oft Debuggen, so hier ein wenig info über Compiler:
Denken Sie daran, dass ein Compiler (ist zwar viel komplexer) ist ein Programm, genau wie diejenigen, die Sie erstellen, es zu benutzen. Einer der Schritte in die meisten (wenn nicht allen) Compilern Durchlaufen der einen oder anderen Stelle Lesen von code ist die Schaffung von "Symbolen" oder-Tasten" für jede variable, Klassen -, Struktur ect. Also, irgendwann wird der compiler erreicht eine code-Zeile, die "wiederholt /Duplikate" woanders. Also die "Taste/Symbol" creation-Prozesses routine durch den compiler fehlschlägt.