9.1 Introduction

Il existe deux types de librairies :

  • Les librairies Statiques (.a ou .la)
  • Les librairies Dynamiques (.so)

Les librairies Statiques sont inclusent dans le programme qui en dépend. L'avantage est que si vous voulez partager votre programme avec quelqu'un d'autre, celui-ci n'a pas besoin d'avoir cette librairie installée pour utiliser votre programme, l'inconvénient est que votre programme est plus gros.

Les librairies Dynamiques ne sont pas inclusent dans le programme qui en dépend. Elle sont linkées au programme dès sont démarrage. L'avantage est que le programme est plus légé. Par contre, la librairie doit être présente sur l'ordinateur de la personne qui veut l'utiliser, et comme il faut linker le programme dès son démarrage, ça prend un peut de temps (dans l'ensemble c'est rapide mais ça dépend de la taille de la librairie).

Là, un certain nombre d'entre vous vont me dire, "on ne dit pas linker, on dit lier". Je dis linker pour savoir de quoi je parle, en programmation comme tout est en anglais (vous avez vu le nom des commandes) on utilise des termes anglais pour savoir que l'on parle de programmation.

Encore une autre différence. Une librairie Dynamiques connaît ses dépendances (les autres libs dont elle dépend), alors que la librairie Statiques ne les connaît pas.