Maison > développement back-end > C++ > Comment puis-je réduire la taille de l'exécutable C/C en supprimant les symboles inutilisés ?

Comment puis-je réduire la taille de l'exécutable C/C en supprimant les symboles inutilisés ?

Barbara Streisand
Libérer: 2024-12-17 13:05:25
original
990 Les gens l'ont consulté

How Can I Reduce C/C   Executable Size by Stripping Unused Symbols?

Optimisation de la taille de l'exécutable : suppression des symboles C/C inutilisés

Il est crucial de minimiser la taille de l'exécutable, en particulier dans les environnements aux ressources limitées. En supprimant les symboles inutilisés d’un exécutable, celui-ci devient plus simple et plus efficace en termes d’utilisation de la mémoire. Cet article explique comment réaliser cette optimisation à l'aide de GCC et ld.

Configuration de GCC et ld

GCC et ld peuvent être configurés pour supprimer les symboles inutilisés des exécutables et des bibliothèques. Pour ce faire, deux étapes de compilation sont nécessaires :

  1. Séparation des données : Lors de la compilation, utilisez les drapeaux -fdata-sections et -ffunction-sections avec GCC. Ces indicateurs demandent au compilateur de séparer le code en sections distinctes au sein de chaque unité de traduction, y compris les fonctions, les classes et les variables externes.
  2. Optimisation des liens : lorsque vous liez les unités de traduction entre elles, utilisez l'éditeur de liens. indicateur d'optimisation -Wl,--gc-sections. Cet indicateur déclenche l'éditeur de liens pour supprimer automatiquement toutes les sections non référencées.

Exemple

Considérons un fichier test.cpp qui contient deux fonctions déclarées, mais l'une d'elles est inutilisé. Pour exclure la fonction inutilisée de l'exécutable final, utilisez la commande suivante :

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

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

Conclusion

En appliquant ces modifications de configuration, le compilateur et l'éditeur de liens peuvent identifier et supprimer les symboles inutilisés, réduisant ainsi considérablement la taille de l'exécutable résultant. Cette optimisation est particulièrement utile pour les systèmes embarqués ou d'autres environnements avec des limitations de ressources strictes.

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