next up previous contents index
Next: Mettre à jour les Up: Programmation en C Previous: Utiliser plusieurs makefiles

     
Utilisation de bibliothèques partagées

  Les bibliothèques partagées ne sont chargées que lorsqu'un programme les appellent, ce qui permet de gagner de la place en mémoire. Pour savoir à quelles bibliothèques partagées est lié un programme, utiliser la commande ldd. Par exemple pour le programme /usr/bin/X11/xterm :

ldd /usr/bin/X11/xterm

Le résultat devrait ressembler à ca :

libXaw.so.6 => /usr/X11R6/lib/libXaw.so.6 (0x4000b000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40042000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40054000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40096000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4009f000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x400b4000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x400bf000)
libc.so.5 => /lib/libc.so.5 (0x4015e000)

La ligne libc.so.5 => /lib/libc.so.5 (0x4015e000) par exemple indique la bibliothèque C standard de version 5.

          L'éditeur de liens dynamiques ld.so recherchera les bibliothèques dans les répertoires /lib, /usr/lib, et dans les répertoires spécifiés dans le fichier /etc/ld.so.conf et dans la variable d'environement $LD_LIBRARY_PATH (utile pour ses propres bibliothèques confidentielles, par exemple). Il faut par ailleurs invoquer la commande ldconfig après chaque modification du fichier /etc/ld.so.conf.

Les bibliothèques partagées ont une extension .so et se trouvent en général dans le répertoire /lib. Le système recherche toujours sur le numéro de version majeur les noms de bibliothèques : /lib/libc.so.5.4.33 a un numéro majeur de version 5 et un numéro mineur de version 4, par exemple. La bibliothèque recherchée sera /lib/libc.so.5, qui est un lien symbolique vers /lib/libc.so.5.4.33 comme l'indique la commande ls -l :

lrwxrwxrwx 1 root root 13 Nov 3 17:58 /lib/libc.so.5 ->
libc.so.5.4.33*
-rwxr-xr-x 1 root root 634880 Apr 29 1996 /lib/libc.so.5.4.33*



 
next up previous contents index
Next: Mettre à jour les Up: Programmation en C Previous: Utiliser plusieurs makefiles
MATHIEU DECORE
1999-11-03
Merci de me dire ce que pensez de ce document.