web-dev-qa-db-fra.com

Erreurs Apple Mach-O Linker et je ne sais pas quoi faire

Je ne peux plus compiler mon projet pour l'appareil ou le simulateur. Je reçois 13 erreurs Apple Mach-O-Linker. Tout a commencé après une tentative infructueuse d'utilisation de sharekit. Voici le journal de l'erreur:

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)
'

Comment puis-je réparer ça? S'il vous plaît aider.

26
Sega dude

Pour tous ceux avec une erreur similaire .. Si cela se produit, vous pouvez normalement supprimer le "Chemin" sous

cible-> Paramètres de construction-> Chemins de recherche de bibliothèque enter image description here

49
crashbus

Cette erreur peut se produire lorsqu'un framework est ajouté à un projet plusieurs fois.

  • Vous pouvez résoudre ce problème en supprimant le doublon. Pour le trouver, sélectionnez la structure dans le navigateur de projet Xcode et choisissez Afficher dans le Finder . Puis nettoyez et construisez votre projet.

Cela peut également être causé s'il vous manque des fichiers d'en-tête de structure ou une référence à ceux-ci. 

  • Dans ce cas, vous devriez essayer de supprimer le SDK ou la structure et de l'ajouter à nouveau.

Bonne chance.

18
Divine_Code

Si vous avez installé des dépendances à l'aide de CocoaPods, veillez à ouvrir votre projet XCode en cliquant sur votre fichier .xcworkspace et sur le fichier not .xcodeproj.

5
Chris Chute

Il semble que le fichier de projet ait été corrompu d'une manière ou d'une autre.

Le moyen le plus sûr de résoudre ce problème est de créer un nouveau projet et de déplacer vos fichiers et votre ancien fichier info.plist dessus.

Le prochain moyen le plus susceptible de résoudre ce problème est de créer une nouvelle cible dans votre projet actuel et de voir si cela compilera (si vous avez des indicateurs spéciaux de l'ancienne cible, vous voudrez les copier).

Vous pouvez aussi essayer de compiler Version/Construction et si l’une d’elles fonctionne, examinez toutes les options du compilateur et voyez ce qui est différent.

Si vous avez ajouté un chemin de recherche d'en-tête pour Sharekit, essayez peut-être de nettoyer tout le chemin de recherche d'en-tête et de voir si cela résout le problème. Assurez-vous également que votre projet inclut toujours les frameworks inclus dans un tout nouveau projet (UIKit et NSFoundation, éventuellement d'autres).

Ajoutez le fichier .m pour compiler la page source.

pas:-

  1. en cliquant sur le projet dans le menu de navigation
  2. sélectionner la cible
  3. sélectionner les phases de construction
  4. Sélectionnez le bouton + et ajoutez le fichier dans les sources de compilation. 

Espérons que cela aide quelqu'un avec ce problème

1
Neenu

Moi aussi j'ai eu le même problème avec 45 erreurs identiques, mais lorsque j'ai ajouté libxml2.dylib à mon projet, les erreurs ont disparu. 

0
Easwaramoorthy K

J'avais ce problème, maintenant que je choisissais une version iOS plus récente car la cible de déploiement corrigeait cela pour moi. Mon projet était configuré pour se déployer sur iOS 5 par défaut et le fait de passer de 7 (le plus récent) a fait l'affaire.

Pour les débutants en développement iOS, vous pouvez le faire en cliquant sur votre fichier de projet XCode dans le navigateur> informations de déploiement> cible de déploiement et en sélectionnant la version appropriée dans le menu déroulant.

Je suis sceptique sur le fait que cela résoudra certains des problèmes rencontrés par d'autres, mais il se peut qu'il y ait quelques personnes dans le même bateau que moi.

0
user3032314

Les problèmes sont les espaces sur votre chemin:

xcode utilise le commutateur suivant pour l'éditeur de liens:

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

et comme il n'est pas cité, cela ne fonctionnera pas. (Il cherche le dossier "/Users/bbrandy95/Documents/Broken"

Vous devez renommer les répertoires ou parcourir les paramètres du projet et ajouter des guillemets aux répertoires. (Mais cela pourrait être difficile à trouver)

0
Bastian

Dans certains cas, le chemin de recherche de votre bibliothèque est vide.Parce qu'il existe de nombreuses erreurs du lieur Apple-mac-o.

Voir ma réponse aussi à.

Erreur Apple Mach-O Linker lors de l'utilisation de classes de données de base dans OCUnit

0
Gajendra K Chauhan

C'est parce que le projet a inséré le fichier xcdatamodeld des données de base dans des sources de compilation. Sélectionnez votre projet -> Phase de construction -> Compiler les sources et supprimez le fichier nomProjet.xcdatamodeld . Et vérifiez également si vous avez importé un fichier .m au lieu du fichier .h. Vérifiez tous les codes d'importation . Et vérifiez si vous avez ajouté le travail de trame de données de base dans la bibliothèque et le fichier .h de données de base importé. Vérifiez la création de NSManagedObject et importez son fichier .Essayez-le et répondez-moi s'il y a encore une erreur.

0
user8065217

J'ai fait face à ce problème avec mon cocoapod développé par moi-même.

L'erreur était: Apple Mach-O Linker errror

Il s'est avéré que j'avais défini un protocole et mis en œuvre une extension de protocole. Une méthode d'extension de protocole était publique, mais pas le protocole en tant que tel. Et cela a provoqué l'erreur Apple Mach-O Linker.

Exemple:

protocole MyProtocol {champ var: String {get}}

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

classe publique MyClass: MyProtocol {}

Dans la description, l'erreur mentionnée MyClass référencée depuis MyProtocol -> MyProtocol référencée depuis giveMeSomething () ...

La solution a donc été de faire Myprotocol aussi public

J'espère que ça aide quelqu'un.

0
scrat84

J'ai eu le même problème,

Je viens simplement de définir l'option de construction -> Enable Bitcode à NO

0
Vineesh TP