GNU/Linux >> Tutoriels Linux >  >> Linux

Savoir si la bibliothèque est dans le chemin

ldconfig peut lister toutes les bibliothèques auxquelles il a accès. Ces bibliothèques sont également stockées dans son cache.

/sbin/ldconfig -v -N explorera tous les chemins de bibliothèque habituels, listera toutes les bibliothèques disponibles, sans reconstruire le cache (ce qui n'est pas possible si vous n'êtes pas un utilisateur root). Il ne prend PAS en compte les bibliothèques dans LD_LIBRARY_PATH (contrairement à ce que disait ce post avant d'éditer) mais vous pouvez passer des bibliothèques supplémentaires à la ligne de commande en utilisant la ligne ci-dessous :

/sbin/ldconfig -N -v $(sed 's/:/ /g' <<< $LD_LIBRARY_PATH)

Vous pouvez compiler un programme de test simple avec gcc et lier votre bibliothèque. Ensuite, vous pouvez vérifier les bibliothèques utilisées avec ldd. J'utilise quelque chose comme ça :

echo "int main(){}" | gcc -x c++ -Wl,--no-as-needed -lmylib - && ldd a.out | grep mylib

-Wl,--no-as-needed empêche l'éditeur de liens de supprimer la bibliothèque, car aucun symbole de la bibliothèque n'est utilisé.


Remplacer globalement (espace) par : avec LD_LIBRARY_PATH

/sbin/ldconfig -N -v $(sed 's/:/ /g' <<< $LD_LIBRARY_PATH)

Linux
  1. Comment connaître les charges exécutables des bibliothèques dynamiques lors de l'exécution ?

  2. Trouver l'URL d'un fichier

  3. Découvrez les processus orphelins de Linux

  4. Introduction aux bibliothèques partagées Linux (comment créer des bibliothèques partagées)

  5. Comment puis-je savoir ce que tous les symboles sont exportés à partir d'un objet partagé ?

Comment trouver l'emplacement de l'exécutable en C ?

chemin de la bibliothèque lorsqu'il est chargé dynamiquement ?

Comment détecter et découvrir qu'un programme est dans l'impasse ?

Imprimer md5sum des résultats d'une commande find sous Linux

comment trouver le chemin HADOOP_HOME sous Linux ?

ldd ne trouve pas le chemin, comment ajouter