'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

Frenck
la source
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.

veste
la source
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é.

Marc
la source
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.

lujop
la source
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. :)

barre oblique inversée-f
la source
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é!

Lazar Kukolj
la source
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
Iron Mike
la source
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
Jaspe
la source
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

Sam B
la source
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

Francesco
la source
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é)"
Major MacGregor
la source
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.

Brad Folkens
la source
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

Gaurav Chaturvedi
la source
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.
krishna
la source
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.
Suragch
la source
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)

studiou
la source
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

ColossalChris
la source
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

chings228
la source
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 ???

farce
la source
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!

Vincent
la source
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.

Alperen Adatepe
la source
1

entrez la description de l'image ici

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

Bandish Kumar
la source
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

Eliah Mbwilo
la source
0

vous devez cocher l'option pour cela:

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

kingboylee0595
la source
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.

Mohammed Fathy
la source
0

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

travaillé pour moi.

entrez la description de l'image ici

Ofir Malachi
la source
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.

Sazzad Hissain Khan
la source
0

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

Viral Savaliya
la source
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.

EmpireJones
la source