web-dev-qa-db-fra.com

Erreur "bibliothèque introuvable pour"

J'ai une erreur après avoir mis dans mon application un admob. hier, l'application fonctionnait bien mais aujourd'hui, elle ne fonctionnait plus. L'erreur est la suivante:

ld: library not found for -lGoogleAdMobAds
clang: error: linker command failed with exit code 1 (use -v to see invocation)

comment le réparer ? Merci !!

98
ViniciusPV

Parfois, vous supprimez simplement la référence de la bibliothèque et ajoutez à nouveau une référence. 

Outre l'ajout du SDK Google Mobile Ads et d'autres bibliothèques à partir de rien, je vous recommande de vérifier les Chemins de recherche de bibliothèques . Dans certains cas, lorsque vous copiez ou dupliquez une cible, Xcode décide qu’il doit échapper à tout guillemet double "avec un '\'. Assurez-vous de supprimer tous les\'s - cela devrait ressembler à ceci -

enter image description here

J'ai pu dupliquer l'erreur en préfixant mon chemin avec plusieurs '\'. 

92
raurora

J'ai eu un problème similaire de "bibliothèque introuvable". Cependant, c'était parce que j'utilisais accidentellement le fichier .xcodeproj au lieu du fichier .xcworkspace.

222
Casper

Si erreur liée aux Cocoapods comme suit:

library not found for -lPod-...

Vous devez vérifier Autres drapeaux de l'éditeur de liens et l'enlever de là.

Informations supplémentaires: Si vous avez un ancien projet utilisant des cocoapodes. Et récemment, vous deviez ajouter le use_frameworks! à votre podfile . cocoapods n'ajoutera pas les bibliothèques à vos autres drapeaux de lieur plus cause son hérité. Par conséquent, vous devrez peut-être supprimer ceux-ci manuellement à partir des autres drapeaux de l'éditeur de liens auxquels ils avaient été ajoutés auparavant en utilisant le use_frameworks!

57
hasan

Pour mon cas Xcode 7, a également travaillé dans Xcode 9.1

ld: library not found for -ldAfnetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)

mettre Build Active architecture Only à Yes

 enter image description here

51
Ted

Sélectionnez votre cible, allez à "Build Phases" dans "Link Binary With Libraries" supprimer le fichier ".a" de cette bibliothèque. Nettoyer et construire.

49
Abuzar Amin

Si l'erreur est comme suit

ld: bibliothèque non trouvée pour -lpods

J'ai trouvé qu'un fichier "libPods.a" de couleur rouge (comme des fichiers manquants) avait été créé d'une manière ou d'une autre dans le groupe Framework du projet. J'ai simplement supprimé ce fichier et tout s'est bien passé.

EDIT: une autre solution

Une autre solution à laquelle j'ai déjà répondu dans la même question est dans ce lien

11
Teena nath Paul

Cela peut également arriver si vous ouvrez un fichier de projet au lieu d'un espace de travail. J'ai perdu comme un jour moi-même de cette façon.

9
kkodev

goto Build Phases -> Lier le binaire avec des bibliothèques et supprimer la bibliothèque qui affiche des erreurs car cette bibliothèque n'est pas disponible dans le dossier du projet

6
Hitesh Agarwal

En retard pour la réponse, mais voici la liste des choses que j'ai essayées. Ce sera donc au même endroit si quelqu'un veut essayer de résoudre le problème.

  1. Architecture valide = armv7 armv7s
  2. Construire une architecture active uniquement = NON
  3. Cible -> Paramètres de construction -> Autres drapeaux de l'éditeur de liens = $ (hérité)
  4. Cible -> Paramètres de construction -> Chemin de recherche de la bibliothèque = $ (hérité)
  5. Produit propre
  6. Pod Update dans le terminal
4
reetu

Cela se produit si vous utilisez des cocoapods et n'utilisez pas le fichier .xcworkspace au lieu du fichier .xcodeproj par défaut.

2
ehacinom

Dans mon cas, il y avait un problème de nommage. Ma bibliothèque s'appelait ios-admob-mm-adapter.a, mais Xcode s'attend à ce que le nom commence par le préfixe lib . Je viens de renommer ma bibliothèque en libios-admob-mm-adapter.a et de corriger le problème.

J'utilise Cocoapods et relie les bibliothèques avec Autres drapeaux de l'éditeur de liens option dans les paramètres de construction de ma cible. Le drapeau ressemble à -l"ios-admob-mm-adapter"

J'espère que ça aide quelqu'un d'autre

1
Accid Bright

Voici comment j'ai résolu le problème:

  1. Allez dans le répertoire platforms/ios
  2. Ensuite, exécutez la commande pod install

C'est tout. 

0
Manoj Shrestha

Solution facile. Voici comment je résoudrais le problème:

  1. Allez dans le répertoire platforms/ios
  2. Ensuite, exécutez la commande pod install

C'est tout. Cela devrait installer la bibliothèque manquante.

0
Manoj Shrestha

L'exécution de 'pod update' dans mon projet a résolu mon problème avec l'erreur 'bibliothèque introuvable pour -lSTPopup'.

Remarquant la réponse de Trevor Panhorst:

"Faites juste attention à la mise à jour du pod si vous n'utilisez pas de versions explicites dans votre fichier pod."

0
Juan Santos

En ce qui me concerne, ce problème se produit car j’ai installé la bibliothèque de matériaux pour IOS. pour résoudre ce problème

1: Allez dans Construire les paramètres de votre application cible.

2: Rechercher Autres drapeaux de l'éditeur de liens

3: Ouvrez les autres drapeaux de l'éditeur de liens et recherchez la bibliothèque mentionnée dans l'erreur.

4: enlever ce drapeau.

5: Nettoyer et construire.

J'espère que cela résoudra votre problème.

0
Fahad Qasim

Je sais que c'est un peu vieux, mais je viens de frapper un problème similaire et en cours d'exécution «mise à jour pod» résolu pour moi. Mon erreur de bibliothèque était avec AFNetworking ...

Faites juste attention à la mise à jour du pod si vous n'utilisez pas de versions explicites dans votre fichier pod.

0
Trevor Panhorst

Simplement, GoogleAdMobAds.a est manquant dans la cible du projet . Pour moi, c'était libAdIdAccessLibrary.a Veuillez vérifier la capture d'écran ci-jointe.

 enter image description here

0
Ashvin Ajadiya

C'est une erreur de compilation pour un Library qui est mis en casse par Static Linker

ld: library not found for -l<Library_name>

Vous pouvez obtenir l'erreur Library not found for lorsque vous n'avez pas inclus de chemin d'accès à la bibliothèque vers Library Search Paths

Vous rencontrez ce problème parce que Static Linker ne peut pas trouver l'emplacement de la bibliothèque. Il vous suffit d'indiquer où ils se trouvent en ajoutant le bon répertoire aux chemins de recherche de bibliothèque dans Xcode pour la liaison.

Build Settings -> Search Paths -> Library Search Paths 

La source est ici

0
yoAlex5

La réponse de @ raurora m'a orienté dans la bonne direction. J'avais inclus des bibliothèques dans mon chemin "watchkitapp Extension/lib". Dans ce cas, le chemin de recherche de la bibliothèque devait être échappé avec un '\', mais l'éditeur de liens ne semblait pas comprendre cela. Pour résoudre/contourner le problème, j'ai déplacé mon chemin de bibliothèque d'un niveau afin qu'il ne soit plus dans un répertoire contenant un espace dans le nom.

0
Justin Domnitz

Dans le cas de ld: library not found for -{LIBRARY_NAME}, c'est parce que le fichier de bibliothèque n'est pas existant.

Vérifiez le chemin de la bibliothèque dans l’onglet Chemins de recherche de la bibliothèque "Construire les phases" de vos cibles d’application.

Le chemin du ou des fichiers de la bibliothèque doit correspondre au chemin réel, par exemple, si vos fichiers se trouvent à la racine du projet, vous devez définir le chemin comme $(PROJECT_DIR).

0
Reza Dehnavi

Cette erreur est très étrange.

J'ai eu cette erreur avec -ldAfnetworking et je ne copie que mon projet dans un autre chemin et fonctionne.

0
A. Trejo

J'ai essayé de renommer ma configuration de construction Release en Production, mais apparemment les cosses de cacao ne l'aiment pas. Je l'ai renommé à nouveau Release, et tout est bien construit.

0

Je viens de mettre à jour le fichier pod 'pod update' et il commence à fonctionner normalement pour moi. 

0
Chandni