wake-up-neo.net

Apple Mach-O Linker-Fehler und ich weiß nicht, was ich tun soll

Ich kann mein Projekt nicht mehr für das Gerät oder den Simulator kompilieren. Ich erhalte 13 Apple Mach-O-Linker-Fehler. Alles begann, nachdem ich versuchten, Sharekit zu verwenden. Hier ist das Protokoll vom Fehler:

ld: warning: directory not found for option '-F/Users/bbrandy95/Documents/Broken Brandsonic Web Projects/Brandsonic Web mobile/../../Downloads/0.2.1gm1/iphoneos4.0/System/Library/Frameworks'
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_NSURLRequest", referenced from:
      objc-class-ref in Brandsonic_Web_mobileAppDelegate.o
      objc-class-ref in Brandsonic_Web_mobileViewController.o
  "_OBJC_CLASS_$_NSAutoreleasePool", referenced from:
      objc-class-ref in main.o
  "_objc_msgSendSuper2", referenced from:
      -[Brandsonic_Web_mobileAppDelegate dealloc] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileViewController didReceiveMemoryWarning] in Brandsonic_Web_mobileViewController.o
      -[Brandsonic_Web_mobileViewController dealloc] in Brandsonic_Web_mobileViewController.o
  "_objc_setProperty", referenced from:
      -[Brandsonic_Web_mobileAppDelegate setWindow:] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate setViewController:] in Brandsonic_Web_mobileAppDelegate.o
  "__objc_empty_vtable", referenced from:
      _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_CLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_SecondView in SecondView.o
      _OBJC_CLASS_$_SecondView in SecondView.o
  "_objc_msgSend", referenced from:
      _main in main.o
      -[Brandsonic_Web_mobileAppDelegate application:didFinishLaunchingWithOptions:] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate dealloc] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate GOOGLE] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate YOUTUBE] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate WIKI] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileViewController webView:shouldStartLoadWithRequest:navigationType:] in Brandsonic_Web_mobileViewController.o
      ...
  "__objc_empty_cache", referenced from:
      _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_CLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_SecondView in SecondView.o
      _OBJC_CLASS_$_SecondView in SecondView.o
  "_OBJC_CLASS_$_NSObject", referenced from:
      _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
  "___CFConstantStringClassReference", referenced from:
      CFString in Brandsonic_Web_mobileAppDelegate.o
      CFString in Brandsonic_Web_mobileAppDelegate.o
      CFString in Brandsonic_Web_mobileAppDelegate.o
      CFString in Brandsonic_Web_mobileViewController.o
      CFString in Brandsonic_Web_mobileViewController.o
      CFString in Brandsonic_Web_mobileViewController.o
      CFString in Brandsonic_Web_mobileViewController.o
      ...
  "_OBJC_CLASS_$_NSKeyedUnarchiver", referenced from:
      objc-class-ref in Brandsonic_Web_mobileViewController.o
  "_OBJC_CLASS_$_NSUserDefaults", referenced from:
      objc-class-ref in Brandsonic_Web_mobileViewController.o
  "_OBJC_CLASS_$_NSURL", referenced from:
      objc-class-ref in Brandsonic_Web_mobileAppDelegate.o
      objc-class-ref in Brandsonic_Web_mobileViewController.o
  "_OBJC_METACLASS_$_NSObject", referenced from:
      _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_SecondView in SecondView.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
'

Wie kann ich das beheben? Bitte helfen.

26
Sega dude

Für jeden mit einem ähnlichen Fehler ..__ Wenn dies passiert, können Sie normalerweise den "Pfad" unter Punkt entfernen

target-> Build Settings-> Bibliothekssuchpfade enter image description here

49
crashbus

Dieser Fehler kann auftreten, wenn ein Framework mehr als einmal zu einem Projekt hinzugefügt wird.

  • Sie können dies beheben, indem Sie das Duplikat entfernen. Um es zu finden, wählen Sie das Framework im Xcode-Projektnavigator aus und wählen Sie In Finder anzeigen . Dann reinigen und bauen Sie Ihr Projekt.

Dies kann auch der Fall sein, wenn Sie Header-Dateien des Frameworks oder einen Verweis auf diese Dateien fehlen. 

  • In diesem Fall sollten Sie versuchen, das SDK oder das Framework zu entfernen und es erneut hinzuzufügen.

Viel Glück.

18
Divine_Code

Wenn Sie Abhängigkeiten mit CocoaPods installiert haben, müssen Sie Ihr XCode-Projekt öffnen, indem Sie auf Ihre .xcworkspace-Datei und nicht die .xcodeproj-Datei klicken.

5
Chris Chute

Es scheint, dass die Projektdatei irgendwie beschädigt wurde.

Am sichersten lässt sich dies beheben, indem Sie ein neues Projekt erstellen und Ihre Dateien und Ihre alte info.plist darüber verschieben.

Die wahrscheinlichste Möglichkeit, dieses Problem zu beheben, besteht darin, ein neues Ziel in Ihrem aktuellen Projekt zu erstellen und zu prüfen, ob dieses kompiliert wird (wenn Sie spezielle Flags vom alten Ziel haben, möchten Sie sie kopieren).

Sie können auch versuchen, für Release vs. Build zu kompilieren. Wenn einer davon funktioniert, sollten Sie alle Compiler-Optionen überprüfen und sehen, was anders ist.

Wenn Sie einen Header-Suchpfad für Sharekit hinzugefügt haben, versuchen Sie vielleicht, den gesamten Header-Suchpfad zu löschen, und prüfen Sie, ob dadurch Probleme behoben werden. Stellen Sie außerdem sicher, dass Ihr Projekt noch Frameworks enthält, die in einem brandneuen Projekt enthalten sind (UIKit und NSFoundation, möglicherweise auch andere).

Fügen Sie die .m-Datei hinzu, um die Quellenseite zu kompilieren.

schritte:-

  1. klicken Sie auf das Projekt im Navigationsmenü
  2. wählen Sie das Ziel aus
  3. wähle Bauphasen aus
  4. Klicken Sie auf die Schaltfläche + und fügen Sie die Datei in Compile-Quellen hinzu. 

Hoffe das hilft jedem bei diesem Problem

1
Neenu

Ich hatte auch das gleiche Problem mit 45 gleichen Fehlern. Wenn ich die libxml2.dylib in mein Projekt einbaute, verschwanden die Fehler. 

0

Ich hatte dieses Problem, nun aufgrund meiner Umstände eine neuere iOS-Version ausgewählt, da das Implementierungsziel dies für mich korrigiert hatte. Mein Projekt sollte standardmäßig auf iOS 5 bereitgestellt werden, und dies wurde auf 7 (die letzte) geändert.

Für alle, die sich mit iOS beschäftigen, können Sie dies tun, indem Sie im Navigator> Implementierungsinformationen> Implementierungsziel auf Ihre XCode-Projektdatei klicken und die entsprechende Version aus dem Dropdown-Menü auswählen.

Ich bin skeptisch, dass dies einige der Probleme lösen wird, die andere haben, aber es sind vielleicht ein paar Leute da draußen im selben Boot wie ich.

0
user3032314

Die Probleme sind die Leerzeichen in Ihrem Pfad:

xcode verwendet den folgenden Schalter für den Linker:

-F/Users/bbrandy95/Documents/Broken Brandsonic Web Projects/Brandsonic Web mobile/../../Downloads/0.2.1gm1/iphoneos4.0/System/Library/Frameworks

und da es nicht zitiert wird, funktioniert es nicht. (Sucht den Ordner "/Users/bbrandy95/Documents/Broken"

Sie sollten die Verzeichnisse umbenennen oder die Projekteinstellungen durchsehen und den Verzeichnissen Anführungszeichen hinzufügen. (Aber das könnte schwierig zu finden sein)

0
Bastian

In einigen Fällen ist der Suchpfad Ihrer Bibliothek leer. Es gibt viele Apple-Mac-o-Linkerfehler.

Siehe auch meine Antwort bei.

Apple Mach-O Linker-Fehler bei Verwendung von Kerndatenklassen in OCUnit

0

Dies liegt daran, dass das Projekt die Xcdatamodeld-Datei der Kerndaten in Compile-Quellen eingefügt hat. Wählen Sie Ihr Projekt -> Phasen erstellen -> Quellen kompilieren und löschen Sie die Datei projectName.xcdatamodeld .. und überprüfen Sie auch, ob Sie anstelle der Datei .m die Datei .h importiert haben. Überprüfen Sie alle #Import-Codes ..__ und prüfen Sie, ob Sie in der Bibliothek Kerndatenrahmen hinzugefügt und die .h-Kerndatendatei importiert haben. Prüfen Sie, ob NSManagedObject erstellt wurde, und importieren Sie die Datei . Probieren Sie es einfach aus und antworten Sie mir, falls noch ein Fehler vorliegt.

0
user8065217

Dieses Problem hatte ich mit meinem selbst entwickelten Kokosapod.

Fehler war: Apple Mach-O Linker-Fehler

Es stellte sich heraus, dass ich ein Protokoll definiert und eine Protokollerweiterung implementiert hatte. Eine Methode der Protokollerweiterung war public, das Protokoll selbst jedoch nicht. Und dies verursachte den Apple Mach-O Linker-Fehler.

Beispiel:

protokoll MyProtocol {var-Feld: Zeichenfolge {get}}

erweiterung MyProtocol { public func giveMeSomething () -> String}

öffentliche Klasse MyClass: MyProtocol {}

In der Beschreibung wurde der Fehler MyClass erwähnt, auf den von MyProtocol verwiesen wurde -> MyProtocol, auf den von giveMeSomething () verwiesen wurde.

Die Lösung bestand also darin, Myprotocol auch public

Hoffe das hilft jemandem.

0
scrat84

Ich hatte das gleiche Problem,

Ich setze einfach die Build Option -> Enable Bitcode auf NO

0
Vineesh TP