Maison > développement back-end > C++ > Comment GCC gère-t-il les en-têtes précompilés et quand doivent-ils être reconstruits ?

Comment GCC gère-t-il les en-têtes précompilés et quand doivent-ils être reconstruits ?

Susan Sarandon
Libérer: 2024-11-30 00:34:13
original
325 Les gens l'ont consulté

How Does GCC Handle Precompiled Headers and When Do They Need Rebuilding?

GCC et en-têtes précompilés

Les en-têtes précompilés (PCH) peuvent être utiles pour accélérer les temps de compilation dans les grands projets. Cependant, comprendre comment fonctionnent les PCH dans GCC peut être difficile.

Déclenchement de la reconstruction de PCH

Dans GCC, un PCH est reconstruit lorsque :

  • Un en-tête inclus dans le PCH est modifié.
  • Une directive de prétraitement qui affecte les en-têtes dans le PCH est #définie ou #undefed.
  • Un fichier qui inclut le PCH est modifié.

Considérations et restrictions sur le style de codage

Pour garantir le bon fonctionnement des PCH, GCC nécessite un codage strict style. Plus précisément :

  • Chaque fichier source ne doit inclure qu'un seul PCH comme première ligne sans commentaire.
  • Aucun #defines ou #includes ne doit apparaître avant que le PCH ne soit inclus.
  • Les mêmes options de prétraitement (par exemple, -D, -I) doivent être utilisées pour tous les fichiers source qui incluent le PCH.

Mise en œuvre pratique

Dans un projet avec plusieurs bibliothèques, détecter quand un PCH doit être reconstruit peut être délicat. Des scripts de construction personnalisés peuvent être nécessaires pour surveiller les modifications d'en-tête et déclencher les reconstructions de PCH en conséquence.

Limites actuelles

Les versions actuelles de GCC (y compris la version 4.7) nécessitent un en-tête unique et commun pour que les PCH fonctionnent efficacement. . Cela peut ne pas convenir à tous les projets.

Développements futurs

Des travaux sont en cours pour améliorer la prise en charge de PCH dans GCC via la branche PreParsed Header (PPH). Cependant, cette fonctionnalité n'est pas encore disponible dans la version principale de GCC.

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