Passer au contenu

Comment savoir le nom et la version des bibliothèques associées à un programme ?

Solution : en utilisant le programme ldd.

Testé avec Mandrake 8.0/SuSE 7.2Après avoir installé la nouvelle version d’un programme, vous remarquez que vous ne pouvez plus l’utiliser. Lorsque vous l’exécutez, il affiche un message d’erreur indiquant que les bibliothèques nécessaires à son fonctionnement ne sont pas présentes sur le système. Pour vous en convaincre, dans une console ou une fenêtre xterm, saisissez la commande ldd -d -r $(which display). Le signe situé devant which indique au système d’utiliser le programme /usr/bin/which et non pas un alias. Les options -d et -r de ldd affichent les objets et les fonctions manquantes.Dans l’exemple ci-dessous (le programme display de la collection d’outils graphiques ImageMagick), il s’agit des fonctions bzDecompress, bzCompressInit, etc. qui ne sont pas prises en compte par le programme. Il faut donc, soit mettre à jour les bibliothèques de compression libbz2 et libbz, soit recompiler ImageMagic pour que tout rentre dans lordre.[fred@serveur3 fred]$ ldd -d -r $(which display)
libMagick.so.5 => /usr/lib/libMagick.so.5 (0x4001b000)
libttf.so.2 => /usr/lib/libttf.so.2 (0x40189000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x401b6000)
libpng.so.2 => /usr/lib/libpng.so.2 (0x401d7000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x401f6000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40204000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40256000)
libbz2.so.0 => /usr/lib/libbz2.so.0 (0x40308000)
libz.so.1 => /usr/lib/libz.so.1 (0x40318000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40326000)
libm.so.6 => /lib/libm.so.6 (0x40339000)


libtiff.so.3 => /usr/lib/libtiff.so.3 (0x40358000)
libc.so.6 => /lib/libc.so.6 (0x40386000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x4046d000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40477000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


undefined symbol: bzDecompress (/usr/lib/libMagick.so.5)
undefined symbol: bzCompressInit (/usr/lib/libMagick.so.5)
undefined symbol: bzCompressEnd (/usr/lib/libMagick.so.5)
undefined symbol: bzDecompressInit (/usr/lib/libMagick.so.5)
undefined symbol: bzDecompressEnd (/usr/lib/libMagick.so.5)
undefined symbol: bzCompress (/usr/lib/libMagick.so.5)

👉🏻 Suivez l’actualité tech en temps réel : ajoutez 01net à vos sources sur Google, et abonnez-vous à notre canal WhatsApp.


Filigrane Press