Maison > développement back-end > C++ > Comment supprimer les symboles inutilisés des exécutables C/C avec GCC et ld ?

Comment supprimer les symboles inutilisés des exécutables C/C avec GCC et ld ?

DDD
Libérer: 2024-12-28 07:55:14
original
717 Les gens l'ont consulté

How to Strip Unused Symbols from C/C   Executables with GCC and ld?

Comment éliminer les symboles inutilisés dans les exécutables C/C à l'aide de GCC et ld

Introduction

L'optimisation de la taille de l'exécutable peut être cruciale dans les systèmes ou ressources embarqués -environnements contraints. Pour y parvenir, il est important de supprimer les symboles inutilisés de l'exécutable.

Suppression des symboles GCC et ld

GCC et ld fournissent des options pour supprimer les symboles inutilisés lors de la compilation et de la liaison :

Options GCC

  • -fdata-sections : Sépare le code et les données en sections distinctes dans chaque unité de traduction.
  • -ffunction-sections : divise les fonctions en sections individuelles.

ld Options

  • -Wl,--gc-sections : demande à ld de supprimer les éléments non référencés sections.

Implémentation

Pour supprimer les symboles inutilisés, suivez ces étapes :

  1. Compilez les fichiers sources avec GCC en utilisant -fdata-sections et -ffunction- drapeaux de sections.
  2. Liez les fichiers objets ensemble en utilisant ld avec -Wl,--gc-sections flag.

Exemple

Supposons que nous ayons un fichier test.cpp avec deux fonctions dont une est inutilisée :

int use(int a);
int unused(int a);
Copier après la connexion

Pour supprimer la fonction inutilisée , compilez et liez comme suit :

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

Cette commande demandera à GCC de séparer le code et les données en sections et à ld de les supprimer. sections non référencées, ce qui donne un exécutable de taille réduite.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal