1.3 Les librairies dynamiques

Nous arrivons donc à la question que vous vous posez en ce moment :

Qu'est-ce qu'une librairie dynamique ?

Une librairie dynamique (.so) est différente d'une librairie statique de plusieurs façons :

  • Tout d'abord elle contient toutes ses dépendances (qui peuvent-être aussi des librairies dynamiques, ou des statiques).
  • Ensuite elle n'est pas comprise dans le programme, mais est utilisée dès qu'on le lance, on parle de linkage à l'exécution.

Oui, mais du coup on est obliger d'avoir toutes les dépendance de la lib sur son ordinateur, ça devient super compliqué.

Pourquoi faut-il se focaliser sur des complications, pensez aux bonnes nouvelles :

  • Un programme utilisant cette lib dynamique sera plus légé (du fait que la librairie n'est pas dans le programme.
  • Un autre avantage : si votre programme utilise une librairie dynamique et qu'il y a une mise à jour de cette librairie (optimisation ou correction de bug), vous allez en profiter sans devoir recompiler votre programme.

Le petit détail est que votre programme va être un tout petit peu moins rapide au démarrage (mais rien de bien méchant), le temps que les libs dynamique de votre programme se chargent.