34 votes

répertoire non trouvé Avertissement de l'éditeur de liens Apple Mach-O mais le chemin de recherche de bibliothèque et le chemin de recherche de framework sont vides

Je reçois ces messages:

 ld: warning: directory not found for option '-F"/Users/joel/Development/GHaikuTabbed"'
ld: warning: directory not found for option '-F"/Users/joel/Development/GHaikuTabbed/../../../Downloads"'
 

Mais quand je vais dans Build Settings (comme suggéré dans 'ld: warning: directory not found for option' ), Library Search Path et Framework Search Path sont vides, donc il n'y a rien à supprimer.

Réflexions sur d'autres choses que je peux faire pour me débarrasser de cet avertissement?

60voto

user2963906 Points 536

Voici une description de la manière d'éviter un problème basé sur Dev Apple Forum posté avant. Il fonctionne pour moi, donc je repost description pour ceux qui ne veulent pas aller s'inscrire sur le forum.

Le bug est dû à une erreur dans XCode 5 quand il traite de l'utilisateur ajout de nouveaux fichiers ou des dossiers pour le projet.

Xcode est la modification de la "Bibliothèque des Chemins de Recherche' paramètre de construction, et la fabrication d'un dieu terrible désordre. Au lieu d'ajouter $(SRCROOT)/ c'est l'ajout des racines chemins d'accès à tous les nouveaux éléments, et en ajoutant des montants aléatoires de /// dans les autres éléments de la chaîne. Il semble aussi être source de duplication des chemins, dans certains cas, probablement parce qu'il est cassé les existants, et pense qu'ils ont besoin de l'ajout de nouveau.

La solution:

  1. La copie de votre Bibliothèque des Chemins de Recherche de chaîne de caractères dans un éditeur de texte.
  2. Enlever toutes les racines des chemins qui ne devrait pas être là, et de les remplacer par $habituels(SRCROOT)/MyFiles/ type de chemins.
  3. Supprimer tous les étrangers des barres obliques et assurez-vous que chaque voie a un " caractère de début et de fin pour se protéger contre les espaces dans les noms de fichiers.
  4. Coller la modification de la chaîne de retour dans les Paramètres de construction.
  5. Nettoyer, puis de Construire. Devrait être de retour à la normale.

Cette erreur peut très bien se reproduire si vous ajoutez de nouveaux fichiers à votre projet, alors méfiez-vous.

5voto

QED Points 5350

Mon project.pbxproj ressemblait à ceci:

 LIBRARY_SEARCH_PATHS = (
        "$(inherited)",
        "\\\"$(SRCROOT)/AdMob-v6.4.1\\\"",
        "/MyProject/AdMob-v6.5.1",
); 
 

J'ai fermé MyProject, supprimé la ligne contenant AdMob-v6.4.1 , rouvert le projet, effectué une "validation des paramètres du projet", nettoyé et construit, et maintenant tout va bien.

4voto

Wood Guardian Points 221

Ouais, XCode est parfois jenky.

Avez-vous essayé de nettoyer votre build ( Produit> Clean Build Folder / Shift-Cmd-K ) et réessayez?

Une autre chose que vous pouvez faire est de rechercher les deux entrées dans [nom_projet] .xcodeproj / project.pbxproj , de les supprimer, de fermer XCode, de rouvrir, de nettoyer le dossier de génération et de réessayer.

Bonne chance!

3voto

flinth Points 698

Pour résumer ce que @user2963906 est le suggèrent, je montre ma solution à ce problème qui, je pense, beaucoup plus facile.

Je suppose que vous avez tous vos fichiers et les bibliothèques de votre dossier de projet.

  1. Ouvrez votre projet Objectifs
  2. Trouver les Chemins de Recherche sujet et de la Bibliothèque des Chemins de Recherche
  3. Le choix et la suppression de tous les chemins d'accès ici
  4. Puis ajouter le chemin comme ceci: $(SRCROOT)/"Your App Name"
  5. Dans la même fenêtre de modification liste déroulante à partir de la droite de non-recursive de recursive
  6. Maj-commande-K et Exécuter votre projet

2voto

mservidio Points 5412

J'ai trouvé une solution à cela avec mon cas sur les forums des développeurs iOS. Cela m'est arrivé avec Xcode 5. Voir les avertissements d'erreur Massive Linker (répertoire non trouvé pour l'option) pour le moment . Pour moi, cela était dû au fait que Xcode 5 a jonglé avec le paramètre de construction "Library Search Paths".

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