Bonjour,
On oppose souvent l'usage de lib static (buildé dans l'exe) aux lib dynamiques (placées à coté de l'exe ou dans un PATH).
Et quand il s'agit de gagner de la place sur l'ensemble de l'application, on précaunise l'usage de lib static.
Grace aux options adaptées (Eliminate Unrefered Data sous windows, ou l'equivalent linux), les classes et méthodes inutilisées sont retirées du binaire final. Cela permet de gagner de l'espace.
(en gros si vous utilisez uniquement ADD dans une lib de maths, alors SUB, DIV, et MULT seront tout simplement retirées, gagnant ainsi 3/4 de la taille totale)
Par contre, quand on utilise des lib dynamiques (ou partagées ou dll ou shared), celles ci sont déposées à coté de votre Exe telles quelles ! Identiques au moment où elles ont été compilées (par vous ou par le fournisseur des libs). Elles ont donc une taille fixée et non réductible (taille ne dépendant que des optim à leur compilation)
Ce que j'aimerai savoir, c'est s'il existe un moyen pour utiliser des shared libs, mais en ayant effectué la passe de "simplification" qui aurait été faite lors d'un link static ???
(En gros, je compile mon Exe, et une moulinette retire les symboles inutilisés au fur et à mesure dans les dll qui sont à coté)
Voilà... des idées ?
Message édité par NounouRs le 23-02-2010 à 10:09:26