Journal : Les bibliothèques logicielles sous Linux

Posté par Poulain Benjamin (page perso, ) le 06 novembre 2007
0
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.

> Lire le journal (5 commentaires, moyenne: 3,4).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Chargement dynamique

Posté par Poulain Benjamin (page perso, ) le 06/11/2007 à 08:25. (lien). Évalué à 3.

Dans la même rubrique, quels outils utilisez vous pour charger dynamiquement une bibliothèque dans vos programmes?

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é.

--
Visitez Linux Certif, le site qu'il est bien pour les Linuxiens. (Passez voir aussi OpenYourCode pour les développeurs)
  • [^]Re: Chargement dynamique

    Posté par Zenitram (page perso, ) le 06/11/2007 à 09:36. (lien). Évalué à 4.

    Perso, j'utilise :
    - 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 Poulain Benjamin (page perso, ) le 06/11/2007 à 12:49. (lien). Évalué à 1.

      Merci beaucoup.
      Effectivement avec g_module_open c'est tout con mais il fallait connaître.
      Et merci pour le code d'exemple.

      --
      Visitez Linux Certif, le site qu'il est bien pour les Linuxiens. (Passez voir aussi OpenYourCode pour les développeurs)
    • [^]Re: Chargement dynamique

      Posté par Ph Husson (page perso, ) le 06/11/2007 à 14:01. (lien). Évalué à 1.

      $ for i in /lib/*.so*;do nm -D $i 2>/dev/null|grep g_module_open;done
      $ /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 () le 06/11/2007 à 14:18. (lien). Évalué à 8.

      Petite rectification:
      * 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

Revenir en haut de page