J'ai besoin d'optimiser sévèrement la taille de mon exécutable ( ARMdéveloppement) et j'ai remarqué que dans mon schéma de construction actuel ( gcc+ ld) les symboles inutilisés ne sont pas supprimés.
L'utilisation de arm-strip --strip-unneededpour les exécutables / bibliothèques résultants ne change pas la taille de sortie de l'exécutable (je ne sais pas pourquoi, peut-être que cela ne peut tout simplement pas) .
Quelle serait la façon (si elle existe) de modifier mon pipeline de construction, de sorte que les symboles inutilisés soient supprimés du fichier résultant?
Je n'y penserais même pas, mais mon environnement embarqué actuel n'est pas très "puissant" et économise même 500Kdes 2Mrésultats dans une très belle amélioration des performances de chargement.
Mettre à jour:
Malheureusement, la gccversion actuelle que j'utilise n'a pas l' -dead-stripoption et le -ffunction-sections... + --gc-sectionsfor ldne donne aucune différence significative pour la sortie résultante.
Je suis choqué que cela soit même devenu un problème, car j'étais sûr que cela gcc + lddevrait automatiquement supprimer les symboles inutilisés (pourquoi doivent-ils même les conserver?).
boostbibliothèques, le .exefichier résultant contient de nombreux fichiers objets inutilisés et en raison des spécifications de mon runtime intégré actuel , le démarrage d'une 10mbapplication prend beaucoup plus de temps que, par exemple, le démarrage d'une 500kapplication.