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)

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Filigrane Press