Maison > développement back-end > C++ > Comment puis-je réduire la taille de l'exécutable à l'aide de GCC et ld pour supprimer les symboles inutilisés ?

Comment puis-je réduire la taille de l'exécutable à l'aide de GCC et ld pour supprimer les symboles inutilisés ?

Susan Sarandon
Libérer: 2024-12-30 00:45:09
original
427 Les gens l'ont consulté

How Can I Reduce Executable Size Using GCC and ld to Strip Unused Symbols?

Suppression des symboles inutilisés dans GCC et ld pour l'optimisation de la taille du code

L'optimisation de la taille de l'exécutable est cruciale, en particulier dans les environnements embarqués avec des ressources limitées. Cet article aborde le problème de la suppression des symboles C/C inutilisés des exécutables à l'aide de GCC et ld.

Les indicateurs -fdata-sections et -ffunction-sections de GCC demandent au compilateur de séparer le code en sections distinctes au sein d'une unité de traduction. Cela garantit que le code, les données et les fonctions inutilisés sont stockés dans des sections distinctes.

Une fois le code compilé, l'éditeur de liens supprime les sections non référencées à l'aide de l'indicateur --gc-sections. Ce processus garantit que seul le code utilisé est conservé dans l'exécutable final. Par exemple, pour supprimer les symboles inutilisés d'un fichier appelé test.cpp contenant deux fonctions, dont l'une est inutilisée, compilez en utilisant :

gcc -Os -fdata-sections -ffunction-sections test.cpp -o test -Wl,--gc-sections
Copier après la connexion

L'indicateur -Os ordonne à GCC de donner la priorité à l'optimisation de la taille.

En incorporant ces techniques dans le processus de construction, les développeurs peuvent réduire considérablement la taille de leurs exécutables, améliorant ainsi les performances de chargement dans des environnements aux ressources limitées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal