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.
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.
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.
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
# Re: .a et .so
Posté par Jerome Herman . Évalué à 6.
Kha
(pas taper)
# Re: .a et .so
Posté par cornofulgur . Évalué à 2.
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 Sébastien Guignot . É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 -=[ silmaril ]=- (site web personnel) . Évalué à 1.
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 Troy McClure (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.