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
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!