.PCH

File PCH

Precompiled Header File
Fai una domanda
RISPOSTA RAPIDA

Un file PCH è un Precompiled Header (intestazione precompilata) - una cache binaria generata automaticamente da un compilatore C++ (Visual Studio, Clang o Xcode) per velocizzare le build salvando lo stato analizzato di file header di grandi dimensioni. Non si apre né si crea mai manualmente. Se riscontri un errore di build relativo al PCH, esegui un «Clean Build» e ricompila il progetto.

Sviluppatore: Microsoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format) Categoria: File di sviluppo MIME: application/octet-stream
SI APRE SU Windows macOS Linux
Correlati: .DO · .MD · .HEX · .XSD

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Sep 5, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file PCH?

Un file .pch è un'intestazione precompilata - una cache binaria del compilatore generata automaticamente durante il processo di build. Invece di rianalizzare file header pesanti come il Windows SDK o stdafx.h in ogni unità di compilazione, il compilatore serializza il suo stato interno - tabelle dei simboli, nodi AST, definizioni di macro, flag include-guard - in uno snapshot .pch. Le unità di compilazione successive caricano direttamente quello snapshot, riducendo drasticamente i tempi di build per grandi progetti C e C++.

MSVC produce file .pch tramite il flag del compilatore /Yc, tipicamente da un file sorgente stub dedicato chiamato pch.cpp o stdafx.cpp. Clang memorizza le sue intestazioni precompilate come un bitstream LLVM compresso incorporato all'interno di un file oggetto nativo in una sezione denominata __clangast. L'equivalente di GCC utilizza l'estensione .gch anziché .pch.

Il formato è interamente interno al compilatore - proprietario, binario e non trasferibile tra macchine. Un file .pch viene invalidato ogni volta che la versione del compilatore, i flag del compilatore o qualsiasi header incluso cambiano; il sistema di build lo rigenera automaticamente. Le dimensioni tipiche variano da 10 MB a oltre 200 MB quando sono inclusi gli header del Windows SDK.

Gli utenti non creano né aprono mai i file .pch manualmente. Eliminarne uno è sicuro - la build successiva lo ricreerà, e una ricompilazione pulita è il rimedio standard per errori PCH persistenti. I Moduli C++20 riducono parzialmente la dipendenza dalle intestazioni precompilate nei nuovi codebase, ma il .pch rimane il meccanismo di velocità di compilazione dominante nei progetti C e C++ esistenti.

Sicurezza e incolumità

RISCHIO: LOW

Un .pch è un artefatto di build interno del compilatore. Non può eseguire codice e non viene eseguito dal sistema operativo. Nessun vettore di attacco significativo; il file è generato localmente dal sistema di build ed è specifico per la macchina.

Dettagli del formato

in sintesi
NOME COMPLETOPrecompiled Header Fileanche noto come PCH file, precompiled header
SVILUPPATOREMicrosoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format)dal 1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
TIPO MIMEapplication/octet-stream
TIPOCache binaria del compilatore (stato AST/simboli del compilatore serializzato)
Questa estensione è usata anche da…
  • Apple Xcode Prefix Header - Xcode (pre-Swift) utilizzava un prefix header .pch (file sorgente, non binario) per precompilare gli header Objective-C; il concetto è lo stesso ma il file è un header testuale, non l'output binario.

Programmi che aprono file PCH

Windows2 apps
Microsoft Visual Studio Freemium Visual Studio crea e utilizza automaticamente i .pch durante la compilazione di progetti C/C++. Se si verificano errori PCH: Build > Clean Solution, quindi Rebuild Solution. Non aprire direttamente il file .pch - è un artefatto di build binario.
Visual Studio Code + C/C++ Extension Open-source La toolchain Clang o MSVC gestisce la generazione del PCH durante la build; non viene aperto manualmente.
macOS1 app
Apple Xcode Gratuito Xcode utilizza i .pch per i prefix header (sorgente testuale) e genera internamente cache PCH binarie. Una build pulita (Product > Clean Build Folder) risolve gli errori PCH.
Linux2 apps
GCC (command line) Open-source GCC genera file .gch (non .pch) per le intestazioni precompilate. Nota: l'estensione di output PCH di GCC è .gch, non .pch.
Clang (command line) Open-source clang -x c++-header header.h -o header.pch genera un PCH; clang -include-pch header.pch lo utilizza.

Dettagli tecnici

specifiche approfondite
Tipo di fileCache binaria del compilatore (AST serializzato e stato dei simboli)
CodificaBinario (rappresentazione interna al compilatore)
Ordine dei byteLittle-endian (MSVC su x86/x64); dipendente dal target (Clang)
ContenitoreBlob binario proprietario (MSVC); file oggetto COFF/ELF/Mach-O con sezione __clangast incorporata (Clang)
CompressioneNessuna (MSVC); bitstream LLVM compresso, basato su zlib (Clang)
Dimensione tipica10 MB - 200 MB; il PCH del Windows SDK è comunemente di 50-200 MB
Flag di generazione MSVC/Yc crea il PCH; /Yu lo consuma nelle unità di compilazione successive
File sorgente predefinitostdafx.cpp o pch.cpp nei progetti MSVC
Specificità della macchinaNon trasferibile tra macchine; il PCH di MSVC include informazioni sugli indirizzi specifiche dell'host
InvalidazioneRigenerato automaticamente quando cambiano la versione del compilatore, i flag o qualsiasi header incluso
Equivalente GCCEstensione .gch (le intestazioni precompilate di GCC non usano .pch)
Rilevamento versioneMSVC incorpora una firma interna; rifiuta i file PCH obsoleti in caso di mancata corrispondenza di versione o flag
Successore C++20I Moduli C++20 (.ifc in MSVC) sostituiscono parzialmente il PCH nei nuovi codebase
OS associatoWindows (MSVC), macOS (Xcode e Clang), Linux (Clang e GCC)
Rilasciato1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
Ultima versioneN/A - format is internal per compiler; MSVC PCH is regenerated by each compiler version
Specificalearn.microsoft.com

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file PCH. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file PCH.

Domande frequenti

Cos'è un file .pch e posso eliminarlo?
È un Precompiled Header - una cache binaria creata dal compilatore C++ per velocizzare le build. Puoi eliminarlo in sicurezza; il compilatore lo rigenererà alla build successiva (che sarà più lenta solo per quella volta).
Perché ricevo errori relativi a un file .pch?
Molto spesso il PCH è obsoleto - versione del compilatore non corrispondente o flag di build modificati. Soluzione: esegui un Clean Build (Build > Clean Solution in Visual Studio, quindi Rebuild).
Dovrei includere i file .pch nel controllo versione?
No. Sono artefatti di build binari specifici per la macchina e possono pesare centinaia di MB. Aggiungi *.pch al file .gitignore.
Come si apre un file .pch?
Non si apre - è una cache binaria del compilatore senza contenuto leggibile dall'uomo. Se vuoi ispezionare il contenuto dell'intestazione precompilata, guarda il file sorgente .h da cui è stato generato (stdafx.h o pch.h nei progetti Visual Studio).
Il formato .pch è usato solo da Visual Studio?
Visual Studio è l'utente principale dell'estensione .pch. Anche Clang crea file PCH con estensione .pch. GCC usa invece .gch. Il formato di ogni compilatore è incompatibile con gli altri.

Riferimenti

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

Continua a esplorare

nel database

Migliori estensioni della settimana

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)

Estensioni correlate

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

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z