La documentation concernant les bibliothèques partagées vient d'être publiée sur Linux Certif.
Un premier article introduit sur les bibliothèques partagées [http://www.linuxcertif.com/objectifs/Exam101/102/24/] et les outils.
Parmi les mots-clés, quatre d'entres eux concernant les bibliothèques ont été détaillés: ldd [http://www.linuxcertif.com/doc/keyword/ldd/], ldconfig [http://www.linuxcertif.com/doc/keyword/ldconfig/], ld.so.conf [http://www.linuxcertif.com/doc/keyword//etc/ld.so.conf/] et LD_LIBRARY_PATH [http://www.linuxcertif.com/doc/keyword/LD_LIBRARY_PATH/].
Ces articles sont écrits pour documenter l'objectif 1.102.4 du premier examen de la première certification du LPI (l'examen 101). Néanmoins ils peuvent intéresser tout les administrateurs Linux et j'espère qu'il sont suffisamment compréhensibles.
Je profite aussi de ce journal pour remercier l'anonyme qui a signalé les erreurs sur la documentation de ldconfig. Comme d'habitude, je serais heureux d'entendre vos remarques et suggestions sur les articles.
# Chargement dynamique
Posté par Benjamin Poulain (site web personnel) . Évalué à 3.
Pour faire un programme modulaire, j'utilise libtool pour charger les plugins au démarrage. L'idéal serait de pouvoir charger et décharger les bibliothèques dans un programme déjà lancé.
[^] # Re: Chargement dynamique
Posté par Zenitram (site web personnel) . Évalué à 4.
- LoadLibrary()/GetProcAddress()/CloseLibrary() sous Windows
- dlopen()/dlsym()/dlclose() sous Windows/MacOS
- g_module_open()/g_module_symbol()/g_module_close() pour du "portable" GLIBC (contribution extérieure d'un fan de portabilité et de la glibc...)
Tu pourras trouver une exemple d'utilisation des trois à cette adresse :
http://mediainfo.cvs.sourceforge.net/mediainfo/MediaInfoLib/(...)
(désolé pour le fouilli, mais gérer les 3 chargements dynamiques, l'unicode ou pas etc... c'est un peu galère. Mais au moins ça pourra te donner l'idée de fonctionnement)
[^] # Re: Chargement dynamique
Posté par Benjamin Poulain (site web personnel) . Évalué à 1.
Effectivement avec g_module_open c'est tout con mais il fallait connaître.
Et merci pour le code d'exemple.
[^] # Re: Chargement dynamique
Posté par Ph Husson (site web personnel) . Évalué à 1.
$ /lib/libc.so.6
GNU C Library stable release version 2.6.1, by Roland McGrath et al.
Moué bon..
[^] # Re: Chargement dynamique
Posté par GeneralZod . Évalué à 8.
* dlopen()/dlsym()/dlclose() ==> c'est du Posix, fourni dans la GNU Libc sous GNU/Linux.
* g_module_open()/g_module_symbol()/g_module_close() ==> c'est la GLIB qui est effectivement portable.
http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Lo(...)
GLIB != GLIBC
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.