'ld: avertissement: répertoire introuvable pour l'option'


524

Lorsque je crée mes applications Xcode 4, j'obtiens cet avertissement:

ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../../../Downloads/Google Analytics SDK/Library'
ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../Google Analytics SDK/Library'

Mais je n'ai pas Google Analytics dans mon application, j'ai tout supprimé comment puis-je supprimer l'erreur? Et l'archivage d'une application me donne l'erreur:

clang: error: no such file or directory: 'armv6'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

J'ai essayé tellement de choses, mais j'obtiens toujours cette erreur lorsque j'essaie de créer un fichier .IPA


10
Notez qu'il ya un avertissement très similaire, mais -Fplutôt que -L: directory not found for option '-F/.... Voir la réponse de @ macayer ci-dessous pour la différence.
pkamb

1
Remarque: assurez-vous que les répertoires avec des espaces sont cités. par exemple $(PROJECT_DIR)/my folderdevrait être «$ (PROJECT_DIR) / mon dossier»
Jacksonkr

J'ai rencontré ce problème lorsque ma classe n'avait pas l' adhésion cible appropriée spécifiée .
Tom Howard

1
@Jackson Cela m'a corrigé. J'ai eu l'avertissement -F, et je l'ai corrigé en citant comme vous l'avez indiqué dans les «Chemins de recherche du cadre» dans les paramètres de construction. Merci
Mark

La sauvegarde régulière est la meilleure pratique.
Gajendra K Chauhan

Réponses:


877

Vous devez faire ceci:

  1. Cliquez sur votre projet (cibles)
  2. Cliquez sur Build Settings
    • si votre erreur inclut l' -Lindicateur, supprimez les valeurs dans les chemins de recherche de bibliothèque
    • si votre erreur inclut l' -Findicateur, supprimez les valeurs dans les chemins de recherche du framework

Et en ce qui concerne la deuxième erreur, désolé, je ne peux pas vous aider avec celle-ci. J'espère que quelqu'un d'autre pourra vous aider.


5
Cela a brisé mon projet, mais je viens de commenter mes #imports Google Analytics et de supprimer le SDK, de quitter xcode, de rajouter et de commenter mes #imports et cela a encore fonctionné :)
emotality

1
Y a-t-il des étapes que vous avez omises? J'ai fait cela et maintenant Xcode ne peut pas trouver un tas d'autres fichiers qui fonctionnaient quelques secondes auparavant. Aidez-moi!
utilisateur

9
Veillez à supprimer si vous avez réellement besoin de ce chemin de bibliothèque. Vérifiez que le chemin spécifié dans l'erreur existe. L'emplacement de la bibliothèque sur le disque a peut-être été déplacé.
AWrightIV

3
Après avoir supprimé les chemins de recherche de bibliothèque, j'ai eu l'erreur: ld: library not found for -lMoboSDK clang: error: linker command failed with exit code 1 (use -v to see invocation)(lMoboSDK est ma bibliothèque statique)
lee

2
J'ai dû supprimer les chemins d'accès sous «Framework Search Paths» sur ma cible «AppTests» pour effacer l'erreur.
AT3D

754

Il y a deux erreurs que les gens semblent confondre.

S'il s'agit d'une erreur "répertoire non trouvé pour l'option ' -L / ...", cela signifie qu'il s'agit d'une erreur de bibliothèque, et vous devriez essayer de:

  • Cliquez sur votre projet (cibles)
  • Cliquez sur Build Settings
  • Sous Chemins de recherche de bibliothèque , supprimez les chemins

S'il s'agit d'un "répertoire introuvable pour l'option ' -F / ...", cela signifie qu'il s'agit d'une erreur de structure, et vous devriez essayer de:

  • Cliquez sur votre projet (cibles)
  • Cliquez sur Build Settings
  • Sous Chemins de recherche du framework , supprimez les chemins

Cela peut se produire lorsque vous déplacez le fichier référencé.


3
Pourquoi toutes les réponses ne peuvent-elles pas être aussi concises et utiles que les vôtres? Je vous remercie. J'ai une question secondaire: où peut-on en savoir plus sur les erreurs cryptiques -L / -F? Je suis nouveau dans l'ensemble du jeu de liaison / compilation / construction, et la documentation intégrée de Xcode n'est pas vraiment quelque chose à raconter. Je suppose que la plupart de ces informations sont accessibles via la ligne de commande. Ai-je raison dans cette hypothèse? Ça a juste été difficile pour moi de savoir par où commencer avec tout ça. Je suis habitué au développement Web, donc comme vous pouvez le supposer, trouver des informations dans ce domaine est un peu plus facile.
Ben Stock

lors de la suppression des chemins de recherche, il affiche à nouveau FacebookSDK introuvable. Il s'agit d'une erreur -F. J'utilise Xcode 6.1
Rinku

A travaillé pour moi. J'ai dû supprimer les chemins de recherche du framework dans les cibles du projet et du module de test (lors de la mise à niveau du projet d'iOS8.3 vers iOS9).
ObjectiveTC

1
Allez Apple, qu'est-il arrivé à "ça marche juste" ... cela devrait s'appliquer aussi aux développeurs. Au moins, offrez-nous des suggestions sur la façon de résoudre ce type de problèmes au lieu de ces messages cryptiques. Rappelle un peu Microsoft, ew.
John Contarino

2
Merci beaucoup pour "-L est pour les chemins de recherche de bibliothèque" et "-F est pour les chemins de recherche de framework" , cela a fonctionné parfaitement pour moi.
swiftBoy

79

Mon problème est que j'ai ouvert le .xcodeproj d' origine au lieu de .xcworkspace qui a été généré par CocoaPods.


Merde, cela m'a vraiment sauvé après 3 heures à me taper la tête sur le clavier
Gregory Saldanha

60

J'ai dû supprimer les références à:

  • Cible
  • Paramètres de construction
  • Chemins de recherche du framework

entrez la description de l'image ici

Ensuite, la version a été rompue (attendue). J'ai donc supprimé le Framework (FB SDK), l'ai rajouté et le tour est joué. Plus d'erreurs ou d'avertissements. :)


19

J'utilise des cabosses de cacao donc pour moi, j'ai quitté Xcode et j'ai couru

pod install

et a rouvert le projet. Cela a tout réglé!


1
Vous ne savez pas pourquoi votre vote est négatif lorsque votre suggestion peut en fait être une solution à un problème similaire! Plus précisément, c'est une solution si vous rencontrez des messages d'erreur similaires après avoir ajouté une nouvelle configuration de construction à votre projet. Étant donné que l'ajout d'une nouvelle configuration de build implique automatiquement la duplication d'une configuration existante, vous devez exécuter pod installpour ajuster la valeur de la colonne «Basé sur le fichier de configuration».
Cellane

1
De plus, les cabosses de cacao génèrent un espace de travail. assurez-vous d'ouvrir cela, pas le fichier de projet. pod install + ouvrir le fichier de l'espace de travail a résolu mon problème.
Michael Krebs

En ionique, cela fonctionne pour moi lorsque j'ai exécuté l'installation du pod dans le dossier plateformes / ios
Bas van Dijk

18

Pour moi, le problème était un caractère d'échappement "\" manquant.

Mes chemins de recherche ont été répartis sur plusieurs lignes dans les chemins de recherche de la bibliothèque. Idéalement, ils se brisaient dans des espaces sur mon chemin. L'ajout de l'échappement "\" l'a corrigé pour moi.

$(PROJECT_DIR)/My\ Project\ Name/My\ Directory

Ceci est la réponse parfaite! Testé en avril 2014
Van Du Tran

1
Il est pathétique que cela soit encore cassé dans Xcode 6, février 2015. Les espaces dans les chemins ne devraient pas avoir besoin d'être échappés manuellement.
StilesCrisis

Les réponses acceptées et plus votées ci-dessus n'ont pas fonctionné pour moi, mais cela a fonctionné. Mon indice que c'était ce problème est que Xcode lançait des erreurs 2 -L, chaque erreur étant un fragment du chemin complet et il se brisait sur l'espace. Nous avons convenu qu'en 2015, nous ne devrions pas avoir à nous soucier des espaces qui s'échappent, cela devrait être géré en coulisses pour nous!
John Contarino

Oui, c'est un problème de longue date dans Xcode qui se produit lorsque votre chemin de recherche est ajouté automatiquement par le système (c'est-à-dire en raison du déplacement d'une bibliothèque dans des «binaires intégrés» - pour une raison quelconque, il n'échappe pas automatiquement aux espaces et interprète par la suite les en tant que chemins de fichiers séparés.
Ash

13

J'ai trouvé la référence que je devais supprimer sur:

  • Cible
  • Paramètres de construction
  • Chemins de recherche d'en-tête

33
Utiliser Google pour trouver une solution pour 'ld: avertissement: répertoire non trouvé pour l'option', trouver ma propre réponse comme solution
Jasper

13

Dans mon cas, le problème était les chemins de recherche de cadre qui avaient des liens incomplets, morts, anciens ou plusieurs cadres du même type. Supprimez-les et votre projet se compilera sans aucun problème.

assurez-vous de faire Build -> clean

entrez la description de l'image ici


10

J'ai rencontré le même problème (le premier) après un crash de Xcode et aucune des solutions proposées n'a fonctionné. Pour supprimer l'avertissement que j'ai fait:

• gérer les schémas ...

• supprimé le schéma actuel

• Schémas Autocrate maintenant


Nous devrions demander à l'auteur de cette question originale de publier une note pour parcourir toutes ces solutions. Une liste. Essayez la première, la deuxième solution suivante, la solution suivante ... car cela l'a fait pour ma migration d'un projet plus ancien et d'autres solutions sont des solutions raisonnables. Si je n'avais pas tout essayé, je n'aurais pas trouvé celui-ci ... passé à autre chose et nagé dans la confusion. Thx Francesco!
Matthew Ferguson

8

C'est ce qui a fonctionné pour moi:

  1. Cliquez sur Projet
  2. Cliquez sur Build Settings
  3. Recherche de "Chemins de recherche du framework"
  4. Effacez le chemin et tapez "$ (hérité)"

6

J'ai été mordu par ce qui semble être le même problème aussi (cette fois dans XCode 5.0.2). Dans mon cas, ce qui s'est passé, c'est que XCode a décidé d'échapper aux guillemets déjà dans les "Paramètres de construction". Ainsi, par exemple:

"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1"

devenu

\"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1\"

ce qui a provoqué l'échec de la construction ...

Une fois que j'ai supprimé les échappements sur les citations, tout a bien fonctionné à nouveau. En outre, il serait probablement préférable de supprimer complètement les devis, sauf si vous en avez besoin.


1
ÉNORME +1 pour cela. Ces échappements sur le "étaient la cause de l'erreur" répertoire non trouvé "pour les options -L et -F.
Will

1
astuce très utile ... dans mon projet xcode 5.0.2 a échappé les guillemets au début, au milieu et à la fin des chemins .... il avait aussi des chemins dupliqués pour certains frameworks d'une manière étrange ... supprimé les échappements, laissez juste "réel" frameworks chemins "pour ceux que le projet utilise et s'est débarrassé des avertissements ... il fallait aussi supprimer / rajouter des frameworks après avoir corrigé les chemins
Marcos Reboucas

6

Si cela se produit après avoir ajouté un Podfile à votre projet et exécuté l'installation du pod, allez dans votre dossier de projet, vous verrez un nouveau fichier qui a été créé "{ProjectName} .xcworkspace" - ouvrez ce fichier dans xcode

Les pods qui ont été installés seront correctement liés à votre projet dans ce fichier


Il se peut que vous ayez ouvert le fichier de projet au lieu de l'espace de travail.
Jason

3

Suivez cette solution étape par étape:

  1. Cliquez sur votre projet (cibles);
  2. Cliquez sur Build Settings;
  3. Sous Chemins de recherche de bibliothèque, supprimez les chemins;
  4. Ajouter ./**sur les chemins de recherche de bibliothèque.

3

Réponse supplémentaire

Toutes les réponses indiquent de supprimer les chemins de recherche du framework ou de la bibliothèque de la cible. J'ai eu deux problèmes:

  • Tout d'abord, je regardais mon objectif principal de projet plutôt que l'objectif de test unitaire.
  • Deuxièmement, je ne pouvais pas comprendre comment supprimer le chemin de recherche du framework. Il s'est avéré qu'il suffit de cliquer dessus pour passer en mode édition, puis de supprimer la chaîne.

Je veux essayer cela, mais je crains que cela ne casse l'application. Êtes-vous sûr que tout a fonctionné après cela?
Supertecnoboff

@Supertecnoboff Si vous craignez que cela ne fonctionne pas, enregistrez la chaîne avant de la supprimer. Vous pouvez toujours le coller à nouveau. Mon application était déjà cassée, je devais donc continuer d'essayer jusqu'à ce que quelque chose fonctionne. Ma réponse ci-dessus est ce qui a fonctionné pour moi.
Suragch

1

Pour moi, le problème semblait être que je n'avais pas inclus les cadres appropriés (lors de la copie d'addons d'un autre projet, je n'ai pas copié les fichiers des cadres également)


1

La clé de ce type d'erreur consiste à entrer dans les paramètres de génération et à regarder chacune des sections des chemins de recherche tels que les chemins de recherche de bibliothèque, les chemins de recherche de structure et peut-être même les chemins de recherche d'en-tête et effacer tous les chemins qui ne s'appliquent plus que votre l'application a du mal à trouver. Retirez-les et continuez bon monsieur


1

allez vérifier quel framework est manquant, puis allez à

=> Phases de construction => Lier le binaire aux bibliothèques

supprimer la bibliothèque, puis rajouter


1

J'ai eu un problème similaire qui a disparu quand j'ai créé un nouveau schéma et l'ai utilisé pour reconstruire ???


1

Pour moi, j'ai également activé les tests. Le chemin de recherche des tests a également été rempli incorrectement.

Effacez le chemin de recherche du framework pour le code normal et le code de test!


1

En raison des répertoires personnalisés entrés dans les chemins de recherche (frameworks et bibliothèque), le projet remplace les répertoires du pod. donc il ne peut pas le trouver.

Pour résoudre ce problème, supprimez tous les répertoires personnalisés de

Chemins de recherche -> Chemins de bibliothèque et chemins de framework,

ne voit que $ {hérité}.

J'espère que ça aide. Ça a marché pour moi.


1

entrez la description de l'image ici

Ajouter $ (hérité) -Objc -lcrypto - lssl dans Project -> Build Setting -> Search path -> Library Search Path


La solution ci-dessus fonctionne bien pour moi, si elle ne fonctionne pas pour vous, veuillez partager la capture d'écran.
Bandish Kumar

1

Si cela se produit après une installation de pod avec certaines dépendances, le problème peut être que vous utilisez l'ancienne version de l'application (.xcworkspace) sur Xcode.

Après une installation de pod, c'est la sortie que vous pouvez voir.

La sortie d'une installation de pod.

Sortie d'une installation de pod

Faites exactement cela, fermez votre fenêtre Xcode actuelle et ouvrez le nouveau .xcworkspace.

Ouverture du nouvel espace xcwork]

Ouverture du nouveau xcworkspace


0

vous devez cocher l'option pour cela:

Paramètres de construction-> Chemins de recherche du framework-> {entrez le chemin de votre projet}


0

J'ai examiné tous les [Chemins de recherche de bibliothèque - Chemins de recherche de framework - Chemins de recherche d'en-tête]. mais il n'y a pas de chemin à supprimer, j'ai donc pu faire disparaître cette alerte en allant dans le bundle Xcode et en créant un répertoire vide à l'emplacement du chemin dont l'alerte se plaignait.


0

Assurez-vous que seulement 1 "libFlurry.a" est sélectionné dans la cible

travaillé pour moi.

entrez la description de l'image ici


0

N'oubliez pas de créer la même configuration pour le projet Pod dans votre espace de travail, si vous changez en nouvelle configuration MainApps.

Par exemple,

Dans mon cas, pour résoudre ce problème, j'ai dû également créer la configuration ReleaseOfficial pour les projets Pod lorsque j'ai créé la configuration ReleaseOfficial pour mon MainApp.


0

Si vous avez installé un nouveau pod puis obtenu cette erreur, quittez simplement le xcode> ouvrez à nouveau> construisez le projet


0

Si la solution typique ne résout pas le problème, ce qui l'a résolu pour moi était de s'assurer que toutes les versions iOS dans le projet xcode (par exemple IPHONEOS_DEPLOYMENT_TARGET) / cibles de déploiement, podfiles (le cas échéant), etc. sont définies sur le même numéro de version.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.