• # Re: .a et .so

    Posté par  . Évalué à 6.

    Vois tu en fait c'est de la faute du pere noel, tu remarqueras que si tu compiles le 25 decembre cette singularite disparait. Maisen dehors de noel les ELFs ne font pas de cadeau.

    Kha
    (pas taper)
  • # Re: .a et .so

    Posté par  . Évalué à 2.

    pourquoi une bibliothèque toto.a est-t-elle toujours plus grosse que toto.so ?

    Parce qu'elle contient plus d'octets.

    C'est dû au phénomène d'ionisation. toto.a attire les octets alors que toto.so les repousse.
    Mais où vont tout ses octets perdus ? La réponse n'est pas si évidente que certains pourraient croire.
    Peut être qu'ils rejoignent la fameuse Matière Noire de l'Univers. Celle qu'on devine, celle qu'on ne voit pas.
    • [^] # Re: .a et .so

      Posté par  . Évalué à 2.

      :)

      C'est pas à cause de l'index des symboles contenu dans les archives (qui est généré par ranlib) ?

      $ nm -s toto.a
      ...
      $ nm -s toto.so

      Je fais peut-être fausse route ?
  • # Re: .a et .so

    Posté par  (site web personnel) . Évalué à 1.

    pour un raison toute bete. un bibliotheque en .a est issue d'une compilation statique et
    est destinée a une compilation statique. donc elle contient tous le codes des fonctions
    qu'elle utilise.

    Le .so par contre est une lib qui utilise les fonctionnalite de dynamic linking pour
    chercher les fonctions dont elle a besoin dans l'espace de code du programme / librairie appelante.
    • [^] # Re: .a et .so

      Posté par  (site web personnel) . Évalué à 1.

      Je ne crois pas, les .a et .so contiennent exactement les même fonctions (cad uniquement celles que tu as écrites dans ton code), le code des fonctions de la glibc, libstdc++ etc n'est pas inclu dans toto.a

Suivre le flux des commentaires

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