web-dev-qa-db-fra.com

La commande de l'éditeur de liens a échoué avec une erreur de code de sortie 1 dans le projet Xcode

Je travaillais sur mon projet et tout à coup, après avoir édité le code et compilé, l'erreur suivante s'est produite:

ld: warning: répertoire non trouvé pour l'option '-
L/Utilisateurs/Mani/Documents/Classes/Twitter + OAuth/Bibliothèques et en-têtes 'ld: symbole en double _OBJC_CLASS _ $ _ playSiew in /Users/mani/Library/Developer/Xcode/DerivedData/learn-aktrtiwswclovoatyweyquoxmypa/Build/Intermediates/learn.build/Debug-iphonesimulator/learn.build/Objects-normal/i386/ et /Users/mani/Library/Developer/Xcode/DerivedData/learn-aktrtiwswclovoatyweyquoxmypa/Build/Intermediates/learn-build/building-iphonesimulator/learn.build/Objects-normal-i386/ pour l'architecture i386 clang: error: la commande de l'éditeur de liens a échoué avec exit code 1 (utilisez -v pour voir l'invocation)

Je n'ai jamais touché les paramètres du projet, juste édité le code.

Ce qui est plus étrange, c’est que j’ai sorti le dernier code révisé de svn mais que j’ai eu la même erreur.

13
user1374408

Comme je l'ai dit, le problème n'était pas le code mais certains paramètres. Donc, ce que j'ai fait était de copier le code du Mac de mes amis (cela fonctionnait bien) et d'installer une nouvelle copie du projet sur mon Mac. Ça a marché.

3
user1374408

Vous pourriez être accidentellement #import 'dans un fichier .m au lieu d'un .h. Utilisez Cmd + Maj + F et recherchez ".m" (sans guillemets). Il est fort probable qu'il se situe dans l'une des classes mentionnées dans l'avertissement. Sinon, nettoyez et exécutez à nouveau.

27
CodaFi

J'avais aussi le même problème et j'ai suivi et le problème est parti. 

Allez dans Produit -> Nettoyer et relancez le projet.

J'espère que cela pourrait être utile pour d'autres développeurs.

22
Narendra Ojha

Après avoir rencontré ce problème il y a quelques minutes (oui, je sais que cela fait 7 mois depuis le fil de discussion d'origine), j'ai constaté que la racine de mon problème était due au fait que je glissais et déposais des fichiers dans mon projet dans XCode au lieu de cliquer avec le bouton droit de la souris et choisissant Ajouter des fichiers au projet.

7
Dan

Vérifiez que playSiew.m se trouve dans la section Compiler les sources. n'est ce pas?

Vous pouvez trouver la section Compiler les sources suivre cette étape

  1. Sélectionnez YourProjectName
  2. Sélectionnez CIBLES
  3. Sélectionnez les phases de construction

Si vous n'avez pas playSiew.m dans cette section. Vous devez l'ajouter à cette section.

4
Dashzaki

J'importais une library dans un scénario de test que j'avais spécifié dans mon fichier pod pour la cible principale, mais pas pour la cible test

3
BrianHenryIE

Si vous travaillez dans Unity et exportez vers iOS et utilisez un plug-in, accédez à Paramètres de construction Xcode et définissez ENABLE BITCODE = NO. Je suppose que cela pourrait s'appliquer à d'autres situations aussi

2
Thyselius

J'ai aussi eu cette erreur parce que j'avais accidentellement inclus deux versions du même fichier source. Supprimé le mauvais et le problème est parti ...

2
ScottyB

Face à un problème similaire, tout en exécutant le code sur un simulateur, essayé toutes les options mentionnées ci-dessus, toujours eu la même erreur. J'ai essayé de connecter le périphérique iOS et de construire le code, cela a fonctionné pour nous. Cela peut être une solution de contournement rapide. 

1
shri

Dans mon cas, j'ai ajouter la référence du framework FacebookLoginSDK mais j'oublie de donner le chemin de recherche dans les paramètres de construction. Après avoir enlevé sa référence, tout allait bien.

Donc, la conclusion est que si vous ajoutez un cadre externe, soyez prudent.

0
Surjeet Rajput

Si cela vous arrive avec les classes générées par CoreData, associez + CoreDataProperties et + CoreDataClass dans la classe + CoreDataProperties et supprimez + CoreDataClass. Assurez-vous de rechercher dans les données dérivées les restes de + CoreDataClass. Même après la suppression des données dérivées et le nettoyage, il arrivait parfois que Xcode génère simplement le + CoreDataClass encore et encore. Le supprimer manuellement dans le Finder, puis le ré-assemblage m'a aidé à résoudre ce problème.

0
Florian

la même erreur j'ai fait face. donc, je viens de supprimer la référence de ces classes qui génèrent les erreurs et puis encore une fois référence et l'erreur a disparu ...

comme D80Buckeye indique qu'il devrait y avoir un problème de glisser-déposer de fichiers au lieu de cliquer sur "Ajouter des fichiers"

0
Vats

J'ai essayé plusieurs des réponses énumérées mais aucune n'a fonctionné pour moi . J'ai eu l'erreur après la mise à jour de XCode (alors qu'il était encore ouvert, ce qui pourrait avoir contribué au problème)

Premièrement , j'ai supprimé mon dossier de données dérivées: XCode => Préférences => Emplacements => Double-cliquez sur la flèche en regard du chemin indiquant l'emplacement du dossier de données dérivées . Ensuite, sélectionnez "Déplacer vers la corbeille" Je ne pense pas que ce soit le problème, mais il est étonnant de constater combien de fois cela a été un problème pour moi de travailler sur différents problèmes.

Deuxièmement , j'ai 'quitté' le simulateur.

Troisièmement , je «quitte» XCode.

Quatrième , j’ai ouvert à nouveau mon projet dans XCode puis j’ai fait un Clean and Build (trouvé dans le menu Produit)

Cinquièmement , j'ai dirigé mon projet et cela a bien fonctionné

0
M. Black

Je viens de rencontrer la même erreur. Si vous utilisez des bibliothèques intégrées, assurez-vous que votre Cible de déploiement est défini sur iOS 8.0 ou une version ultérieure.

0
GuyMontag

Au cas où cela serait utile à quelqu'un d'autre - je viens d'avoir cette même erreur et la cause en était l'initialisation d'une variable dans mon fichier d'en-tête plutôt que dans le fichier principal.

0
Christina

Pour moi c'était différent. J'ai eu la même erreur lorsque j'ai retiré un pod et que je l'ai résolu en supprimant ce pod des drapeaux Other Linker dans les Build Settings

 enter image description here

puis nettoyez votre projet [Produit> Nettoyer] et reconstruisez

0
Wissa

La seule façon de surmonter ce bogue dans notre projet est de procéder à un nettoyage puis à une construction pour iPad Retina. Après cela, il sera construit avec succès pour n’importe quel appareil. Bizarre.

0
user441058

il vous suffit d'ajouter le framework suivant: quartzcore.framework

0
Tala

Nettoyer le projet ne fonctionne pas pour moi . Redémarrer le Xcode fonctionne pour moi ...

0
yuchaozh

essayez ceci, allez dans Cible -> Paramètres de construction, puis recherchez ces trois comme suit,

GCC_NO_COMMON_BLOCKS,

CLANG_WARN_INFINITE_RECURSION,

CLANG_WARN_SUSPICIOUS_MOVE,

mettez NO à chaque valeur puis nettoyez et construisez.

0
NIranjan Gajipara