.PCH

Fichier PCH

Precompiled Header File
Poser une question
RÉPONSE RAPIDE

Un fichier PCH est un en-tête précompilé - un cache binaire généré automatiquement par un compilateur C++ (Visual Studio, Clang ou Xcode) pour accélérer les builds en sauvegardant l'état analysé des fichiers d'en-tête volumineux. Vous ne devez jamais en ouvrir ou en créer un manuellement. Si vous voyez une erreur de build liée au PCH, effectuez un « Clean Build » et recompilez le projet.

Développeur : Microsoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format) Catégorie : Fichiers de développement MIME: application/octet-stream
S'OUVRE SUR Windows macOS Linux
Lié : .DO · .MD · .HEX · .XSD

Sur cette page

19k+ extensions indexées
Dernière révision le Sep 5, 2026

Pas sûr de la nature de votre fichier ?

Déposez n'importe quel fichier dans notre identificateur - nous lisons juste les premiers octets pour nommer le format.

Identifier un fichier

Qu'est-ce que le format de fichier PCH ?

Un fichier .pch est un en-tête précompilé - un cache binaire du compilateur généré automatiquement pendant le processus de build. Plutôt que de ré-analyser des fichiers d'en-tête volumineux tels que le Windows SDK ou stdafx.h à chaque unité de compilation, le compilateur sérialise son état interne - tables de symboles, nœuds AST, définitions de macros, drapeaux de protection d'inclusion - dans un instantané .pch. Les unités de compilation suivantes chargent cet instantané directement, réduisant considérablement les temps de build pour les grands projets C et C++.

MSVC produit des fichiers .pch via le drapeau de compilation /Yc, généralement à partir d'un fichier source dédié nommé pch.cpp ou stdafx.cpp. Clang stocke ses en-têtes précompilés sous forme de flux binaire LLVM compressé, intégré dans un fichier objet natif dans une section nommée __clangast. L'équivalent de GCC utilise l'extension .gch plutôt que .pch.

Le format est entièrement interne au compilateur - propriétaire, binaire et non transférable entre machines. Un fichier .pch est invalidé dès que la version du compilateur, les drapeaux de compilation ou l'un des en-têtes inclus change ; le système de build le régénère automatiquement. Les tailles typiques varient de 10 Mo à plus de 200 Mo lorsque les en-têtes du Windows SDK sont inclus.

Les utilisateurs ne créent ni n'ouvrent jamais de fichiers .pch manuellement. En supprimer un est sans danger - le prochain build le recréera, et une reconstruction complète (clean rebuild) est le remède standard pour les erreurs PCH persistantes. Les Modules C++20 réduisent partiellement la dépendance aux en-têtes précompilés dans les nouvelles bases de code, mais le .pch reste le mécanisme dominant de vitesse de compilation dans les projets C et C++ existants.

Sécurité et sûreté

RISQUE : LOW

Un fichier .pch est un artefact de build interne au compilateur. Il ne peut pas exécuter de code et n'est pas exécuté par l'OS. Aucun vecteur d'attaque significatif ; le fichier est généré localement par le système de build et est spécifique à la machine.

Détails du format

en bref
NOM COMPLETPrecompiled Header Filealias PCH file, precompiled header
DÉVELOPPEURMicrosoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format)depuis 1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
TYPE MIMEapplication/octet-stream
TYPECache binaire du compilateur (état AST/symbole du compilateur sérialisé)
Cette extension est également utilisée par…
  • En-tête de préfixe Apple Xcode - Xcode (avant Swift) utilisait un en-tête de préfixe .pch (fichier source, pas binaire) pour précompiler les en-têtes Objective-C ; le concept est le même mais le fichier est un en-tête texte, pas la sortie binaire.

Programmes qui ouvrent les fichiers PCH

Windows2 apps
Microsoft Visual Studio Freemium Visual Studio crée et utilise automatiquement les fichiers .pch lors de la génération de projets C/C++. Si des erreurs PCH surviennent : Générer > Nettoyer la solution, puis Régénérer la solution. N'ouvrez pas le fichier .pch directement - c'est un artefact de build binaire.
Visual Studio Code + C/C++ Extension Open-source La chaîne d'outils Clang ou MSVC gère la génération du PCH pendant le build ; ne s'ouvre pas manuellement.
macOS1 app
Apple Xcode Gratuit Xcode utilise le .pch pour les en-têtes de préfixe (source texte) et génère des caches PCH binaires en interne. Un « Clean build » (Produit > Nettoyer le dossier de build) résout les erreurs PCH.
Linux2 apps
GCC (command line) Open-source GCC génère des fichiers .gch (et non .pch) pour les en-têtes précompilés. Note : l'extension de sortie PCH de GCC est .gch, pas .pch.
Clang (command line) Open-source clang -x c++-header header.h -o header.pch génère un PCH ; clang -include-pch header.pch l'utilise.

Détails techniques

spécifications approfondies
Type de fichierCache binaire du compilateur (AST sérialisé et état des symboles)
EncodageBinaire (représentation interne au compilateur)
Ordre des octetsLittle-endian (MSVC sur x86/x64) ; dépendant de la cible (Clang)
ConteneurBlob binaire propriétaire (MSVC) ; fichier objet COFF/ELF/Mach-O avec section __clangast intégrée (Clang)
CompressionAucune (MSVC) ; flux binaire LLVM compressé, basé sur zlib (Clang)
Taille typique10 Mo - 200 Mo ; le PCH du Windows SDK fait couramment 50-200 Mo
Drapeau de génération MSVC/Yc crée le PCH ; /Yu le consomme dans les unités de compilation suivantes
Fichier source par défautstdafx.cpp ou pch.cpp dans les projets MSVC
Spécificité machineNon transférable entre machines ; le PCH de MSVC inclut des informations d'adresse spécifiques à l'hôte
InvalidationRégénéré automatiquement lorsque la version du compilateur, les drapeaux ou tout en-tête inclus change
Équivalent GCCExtension .gch (les en-têtes précompilés GCC n'utilisent pas .pch)
Détection de versionMSVC intègre une signature interne ; rejette les fichiers PCH obsolètes en cas de non-correspondance de version ou de drapeau
Successeur C++20Les Modules C++20 (.ifc dans MSVC) remplacent partiellement le PCH dans les nouvelles bases de code
OS associéWindows (MSVC), macOS (Xcode et Clang), Linux (Clang et GCC)
Publié1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
Dernière versionN/A - format is internal per compiler; MSVC PCH is regenerated by each compiler version
Spécificationlearn.microsoft.com

Q&R de la communauté

posées par les utilisateurs
Poser une question rapide
Obtenez de l'aide de personnes qui travaillent avec des fichiers PCH. Soyez précis - incluez votre système et la version du logiciel.
Aucun compte requis · réponses généralement sous un jour

Pas encore de questions - soyez le premier à poser une question sur les fichiers PCH.

Foire aux questions

Qu'est-ce qu'un fichier .pch et puis-je le supprimer ?
C'est un en-tête précompilé - un cache binaire créé par votre compilateur C++ pour accélérer les builds. Vous pouvez le supprimer sans risque ; le compilateur le régénérera lors du prochain build (qui sera plus lent cette fois-là).
Pourquoi ai-je des erreurs concernant un fichier .pch ?
Le plus souvent, le PCH est obsolète - version du compilateur incompatible ou modification des drapeaux de build. Solution : effectuez un « Clean Build » (Générer > Nettoyer la solution dans Visual Studio, puis Régénérer).
Dois-je valider les fichiers .pch dans mon gestionnaire de version ?
Non. Ce sont des artefacts de build binaires spécifiques à la machine et ils peuvent peser des centaines de Mo. Ajoutez *.pch à votre fichier .gitignore.
Comment ouvrir un fichier .pch ?
Vous ne le faites pas - c'est un cache binaire du compilateur sans contenu lisible par l'homme. Si vous souhaitez inspecter le contenu de l'en-tête précompilé, regardez le fichier source .h à partir duquel il a été généré (stdafx.h ou pch.h dans les projets Visual Studio).
Le format .pch est-il uniquement utilisé par Visual Studio ?
Visual Studio est l'utilisateur principal de l'extension .pch. Clang crée également des fichiers PCH avec une extension .pch. GCC utilise .gch à la place. Le format de chaque compilateur est incompatible avec les autres.

Références

1Microsoft Learn - Creating Precompiled Header Files (MSVC)learn.microsoft.com
2GCC - Precompiled Headersgcc.gnu.org

Continuer l'exploration

à travers la base de données

Top des extensions cette semaine

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.PRDXSoftMaker Presentations Document
10.EXEWindows Executable (Portable Executable)

Extensions liées

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Outils de fichiers gratuits

Un identificateur de fichier et un convertisseur d'images dans le navigateur - tout s'exécute sur votre appareil.

Ouvrir la boîte à outils

Parcourir les extensions de fichiers A-Z