Accueil
 1  Objectifs de la séance
 2  Modularité en C vs. Java
 3  Compilation de modules
 4  Bibliothèque
 4.1  Création d'une bibliothèque
 4.2  Organisation
 5  Makefile
   
   
   
   
 

 Contacts

W3C validator

Département INF  
 Titre du cours


4 Bibliothèque

  • Regroupement de fichiers objets au sein d’une bibliothèque
    • Équivalent d’un package Java
    • Accès à tout un ensemble de modules
  • Utilisation
    • dans le code source: #include ”mem_alloc.h”, puis utilisation des fonctions
    • lors de l’édition de lien: ajouter l’option -l, par exemple: -lmemory
      • Utilise la bibliothèque libmemory.so ou libmemory.a

    previous     next 


Avantages/inconvénients des bibliothèques statiques:

  • Taille de l’exécutable important (puisqu’il inclut la bibliothèque);
  • En cas de nouvelle version d’une bibliothèque (qui corrige un bug par exemple), il faut recompiler toutes les applications utilisant la bibliothèque;
  • Duplication du code en mémoire;
  • L’exécutable incluant une bibliothèque statique fonctionne “tout seul” (pas besoin d’autres fichiers).

Avantages/inconvénients des bibliothèques dynamiques:

  • Taille de l’exécutable réduite (puisqu’il n’inclut qu’une référence à la bibliothèque);
  • En cas de nouvelle version d’une bibliothèque (qui corrige un bug par exemple), pas besoin de recompiler les applications utilisant la bibliothèque;
  • Une instance du code en mémoire est partageable par plusieurs processus;
  • L’exécutable incluant une bibliothèque dynamique ne fonctionne pas “tout seul”: il faut trouver toutes les bibliothèques dynamiques nécessaires.

Les “dépendances” dues aux bibliothèques dynamiques sont visibles avec ldd:  
verbatim

François Trahay, Télécom SudParis, CSC4103 – Programmation système, 2019–2020