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 !!
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 -
J'ai pu dupliquer l'erreur en préfixant mon chemin avec plusieurs '\'.
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
.
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!
Sélectionnez votre cible, allez à "Build Phases"
dans "Link Binary With Libraries"
supprimer le fichier ".a"
de cette bibliothèque. Nettoyer et construire.
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
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.
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
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.
Cela se produit si vous utilisez des cocoapods et n'utilisez pas le fichier .xcworkspace
au lieu du fichier .xcodeproj
par défaut.
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
Voici comment j'ai résolu le problème:
platforms/ios
pod install
C'est tout.
Solution facile. Voici comment je résoudrais le problème:
platforms/ios
pod install
C'est tout. Cela devrait installer la bibliothèque manquante.
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."
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.
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.
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
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.
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)
.
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.
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.
Je viens de mettre à jour le fichier pod 'pod update' et il commence à fonctionner normalement pour moi.