• # Euh ... moi je ne vois que des avantages :-)

    Posté par (site web personnel) . En réponse au journal Fonctionnement du linker dynamic sous linux. Évalué à 5.

    Les librairies dynamiques ont de multiples intérêts. Ca évite par exemple d'avoir à recoder à chaque fois la fonction strlen ou encore printf :-) Et puis, lorsque la librairie s'améliore (correction de faille de sécurité, correction de bug, optimisation, etc.) tous les programmes du système en profitent.

    Après, niveau technique, gcc et son pôte ld font du bon boulot. Déjà, lors de la compilation, gcc vérifie que le symbolique existe dans le .so (ou alors je me trompe). Après, lorsqu'on exécute un programme qui utilise les librairies dynamiques (99% des applications hors de /bin je pense), il suffit de demander au programme ELF quels sont les symboles dont il a besoin. On peut faire ça à la main avec la commande nm.

    Les noms (toto, tata) sont juste un artifice de programmeur. Un binaire ne contient plus aucun nom lorsqu'il est exécuté. Et lors du chargement de la librairie dynamique, seuls les symboles demandés sont importés. Là encore je peux me tromper. Mais ça fait juste une correspondance "tel pointeur en mémoire est assigné à telle valeur". Donc tu peux avoir plusieurs toto sans que ça pose de problème (je vais pas entrer dans les détails).

    @+ Haypo