46 votes

xcode4 : Linker error : Répertoire non trouvé pour l'option

J'obtiens cette erreur pour mon build de profil (le build de débogage était OK).

{Directory not found for option '-L../../../Mac/Profile/lib [full path of that directory]

Library not found for -lMyLib}

Lorsque je vérifie le chemin, le répertoire existe et le fichier libMyLib.a existe également. Le chemin de recherche de ma bibliothèque pour la construction du profil inclut ce répertoire $(SRCROOT)/../../../Mac/Profile/lib. Je me suis également assuré que la bibliothèque a été construite sous le paramètre de profil.

Cela ne se produit qu'avec la construction du profil.

J'aimerais vraiment avoir de l'aide, même si la question est peut-être évidente.

Merci !

EDIT : J'ai trouvé la solution moi-même J'ai résolu le problème : dans le chemin de mon linker, il y avait deux entrées de répertoire. La seconde était entourée de guillemets doubles alors que la première ne l'était pas. Xcode4 semble les avoir concaténées en une seule entrée de répertoire et apparemment c'était une erreur. Après avoir retiré les guillemets, l'erreur de liaison a disparu.

103voto

duongvanthai Points 1172

Allez dans "Get Info" sur la cible. Cliquez sur l'onglet "Build Settings" (j'utilise Xcode4), et faites défiler jusqu'à "Search Paths", où vous supprimez toutes les valeurs dans "Library Search Paths".

J'espère que cela vous aidera...

55voto

macayer Points 3104

Il y a deux erreurs que les gens semblent confondre

S'il s'agit d'un "répertoire non trouvé pour l'option ' -L /..." Cela signifie que c'est une erreur de bibliothèque, et vous pouvez essayer :

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

S'il s'agit d'un "répertoire non trouvé pour l'option ' -F /..." Cela signifie qu'il s'agit d'une erreur de structure, et que vous pouvez essayer :

  • Cliquez sur votre projet (cibles)
  • Cliquez sur Build Settings
  • Sous Framework Search Paths supprimer les chemins

Cela peut se produire lorsque vous déplacez les fichiers référencés ou changez le nom du dossier du projet.

1voto

inewland53 Points 11

La situation était similaire à celle décrite ci-dessus dans les chemins de recherche de la bibliothèque. J'ai découvert que l'un de mes chemins n'était pas entouré de guillemets...

// Old path
$(PROJECT_DIR)/Google Analytics

// New path
"$(PROJECT_DIR)/Google Analytics"

0voto

weesplodge Points 140

J'ai rencontré cette erreur dans un scénario apparemment complètement différent des réponses ci-dessus. J'espère que certaines personnes feront comme moi et trouveront cela utile, même si c'est un cas rare.

J'ai réussi à obtenir cette erreur après avoir ajouté un nouveau viewController à mon projet. Comme d'habitude, j'ai ajouté un tableau et l'ai contraint, puis j'ai ajouté et lié le délégué et la source de données. J'ai également créé une propriété.

La chose étrange que j'ai alors remarquée est que dès que j'ai terminé de créer la propriété, elle a été immédiatement liée, comme si je l'avais liée, mais avant que je ne la lie. Lorsque j'ai cliqué sur le fichier xib et vérifié les liens, il n'était en fait pas lié à la vue tableau.

enter image description here

(Ce lien s'est affiché automatiquement sans que je doive le créer moi-même)

Je ne sais pas pourquoi c'est arrivé. J'ai supprimé le fichier et l'ai refait avec le même nom mais ça s'est reproduit. Je reçois l'erreur ci-dessus.

La façon dont j'ai résolu le problème a été de créer un nouveau fichier, avec un nom différent, et d'ajouter et créer les liens dans un ordre différent en vérifiant à chaque étape que cela ne s'était pas produit. Après avoir fait cela, aucun lien ne s'est créé et cela a fonctionné.

TL DR : Si vous obtenez cette erreur et que vous avez récemment ajouté un nouveau contrôleur de vue, vérifiez si sa suppression fonctionne et, si c'est le cas, refaites-le en faisant attention aux liens automatiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X