Bonjour,
voila le problème (un exemple en C est peut etre plus simple). Soit les programmes :
void f(int x)
{
return 3+x;
}
int g(int x)
{
int i;
for(i=0;i<x;i++) print("%d ",i);
}
int main(void)
{
g(3);
return 0;
}
On n'utilise pas la fonction f donc la taille du programme devrait être plus faible que le programme :
int g(int x)
{
int i;
for(i=0;i<x;i++) print("%d ",i);
}
int main(void)
{
g(3);
return 0;
}
Hors ce n'est pas le cas. Ma question est donc comment faire pour que toutes les fonctions ou méthodes (pour les classes) utilisées directement ou non soient conservées et les autres supprimées. J'utilise gcc. Le but est de réduire au maximum un programme lié à une bibliothèque.
Merci
# Un idée peut-être...
Posté par lolop (site web personnel) . Évalué à 3.
Zieuter du côté des options du linker.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Un idée peut-être...
Posté par wxuserbrest . Évalué à 1.
[^] # Re: Un idée peut-être...
Posté par liberforce (site web personnel) . Évalué à 3.
Sinon tu peux regarder comment "stripper" les binaires, pour réduire leur taille (et sans doute aussi la bibliothèque, mais je t'avoue que ne l'ayant jamais utilisé, je sais juste que le stripping existe).
[^] # Re: Un idée peut-être...
Posté par wxuserbrest . Évalué à 1.
[^] # Re: Un idée peut-être...
Posté par liberforce (site web personnel) . Évalué à 3.
[^] # Re: Un idée peut-être...
Posté par Alf (site web personnel) . Évalué à 1.
http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs
[^] # Re: Un idée peut-être...
Posté par Jean-Michel Caricand . Évalué à 0.
Le lieur supprimait le code non référencé comme les fonctions et les variables non utilisées.
# visibility feature de gcc 4.*
Posté par Anonyme . Évalué à 3.
http://gcc.gnu.org/wiki/Visibility
Vu que gcc exporte comme un sagouin tous les symboles, ca va beaucoup aider.
2) link avec -s (ce qui revient a stripper). Au passage, ne strippe pas en mode debug.
[^] # Re: visibility feature de gcc 4.*
Posté par Anonyme . Évalué à 3.
man nm pour la doc, bien sur...
# Quand on fait une bibliothèque, on optimise l'édition de lien en...
Posté par tguez . Évalué à 1.
D'où : c'est à toi de découper à l'avance en petites sources séparées.
Voir aussi les options "-O", dont particulièrement "-Os" (Optimiser pour la taille générée). La commande strip a aussi des options pour être (parfois) plus efficace.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.