.PCH

PCH-fil

Precompiled Header File
Still et spørsmål
HURTIGSVAR

En PCH-fil er et «Precompiled Header» - en binær hurtigbuffer (cache) generert automatisk av en C++-kompilator (Visual Studio, Clang eller Xcode) for å øke hastigheten på bygging ved å lagre den analyserte tilstanden til store header-filer. Du skal aldri åpne eller opprette en manuelt. Hvis du ser en PCH-relatert byggfeil, utfør en «Clean Build» og bygg prosjektet på nytt.

Utvikler: Microsoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format) Kategori: Utviklerfiler MIME: application/octet-stream
ÅPNES PÅ Windows macOS Linux
Relatert: .DO · .MD · .HEX · .XSD

På denne siden

19k+ filendelser indeksert
Sist vurdert Sep 5, 2026

Usikker på hva filen din er?

Slipp hvilken som helst fil inn i vår identifikator - vi leser bare de første bytene for å navngi formatet.

Identifiser en fil

Hva er PCH-filformatet?

En .pch-fil er et forhåndskompilert hode (precompiled header) - en binær kompilator-cache generert automatisk under byggprosessen. I stedet for å analysere store header-filer som Windows SDK eller stdafx.h på nytt for hver kompileringsenhet, serialiserer kompilatoren sin interne tilstand - symboltabeller, AST-noder, makrodefinisjoner, include-guard-flagg - til et .pch-øyeblikksbilde. Påfølgende kompileringsenheter laster dette øyeblikksbildet direkte, noe som reduserer byggetiden dramatisk for store C- og C++-prosjekter.

MSVC produserer .pch-filer via kompilatorflagget /Yc, vanligvis fra en dedikert kildekodefil kalt pch.cpp eller stdafx.cpp. Clang lagrer sine forhåndskompilerte hoder som en komprimert LLVM-bitstrøm innebygd i en nativ objektfil i en seksjon kalt __clangast. GCCs ekvivalent bruker filendelsen .gch i stedet for .pch.

Formatet er utelukkende internt for kompilatoren - proprietært, binært og ikke overførbart mellom maskiner. En .pch-fil blir ugyldiggjort hver gang kompilatorversjonen, kompilatorflaggene eller en inkludert header endres; byggesystemet regenererer den automatisk. Typiske størrelser varierer fra 10 MB til over 200 MB når Windows SDK-headere er inkludert.

Brukere oppretter eller åpner aldri .pch-filer manuelt. Det er trygt å slette dem - neste bygg vil gjenopprette dem, og en ren gjenoppbygging (clean rebuild) er standardløsningen for vedvarende PCH-relaterte feil. C++20 Modules reduserer delvis avhengigheten av forhåndskompilerte hoder i nye kodebaser, men .pch forblir den dominerende mekanismen for kompileringshastighet i eksisterende C- og C++-prosjekter.

Sikkerhet og trygghet

RISIKO: LOW

En .pch er en intern bygg-artefakt fra kompilatoren. Den kan ikke kjøre kode og utføres ikke av operativsystemet. Ingen reell angrepsvektor; filen genereres lokalt av byggesystemet og er maskinspesifikk.

Formatdetaljer

i et nøtteskall
FULLT NAVNPrecompiled Header Fileogså kjent som PCH file, precompiled header
UTVIKLERMicrosoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format)siden 1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
MIME-TYPEapplication/octet-stream
TYPEBinær kompilator-cache (serialisert kompilator-AST/symboltilstand)
Denne filendelsen brukes også av…
  • Apple Xcode Prefix Header - Xcode (før Swift) brukte en .pch prefix-header (kildekodefil, ikke binær) for å forhåndskompilere Objective-C-headere; konseptet er det samme, men filen er en tekst-header, ikke det binære resultatet.

Programmer som åpner PCH-filer

Windows2 apps
Microsoft Visual Studio Freemium Visual Studio oppretter og bruker .pch automatisk når du bygger C/C++-prosjekter. Hvis PCH-feil oppstår: Build > Clean Solution, deretter Rebuild Solution. Ikke åpne .pch-filen direkte - det er en binær bygg-artefakt.
Visual Studio Code + C/C++ Extension Åpen kildekode Clang- eller MSVC-verktøykjeden håndterer PCH-generering under bygging; åpnes ikke manuelt.
macOS1 app
Apple Xcode Gratis Xcode bruker .pch for prefix-headere (tekstkilde) og genererer binære PCH-cacher internt. En ren bygging (Product > Clean Build Folder) løser PCH-feil.
Linux2 apps
GCC (command line) Åpen kildekode GCC genererer .gch-filer (ikke .pch) for forhåndskompilerte hoder. Merk: GCCs filendelse for PCH er .gch, ikke .pch.
Clang (command line) Åpen kildekode clang -x c++-header header.h -o header.pch genererer en PCH; clang -include-pch header.pch bruker den.

Tekniske detaljer

dyp spesifikasjon
FiltypeBinær kompilator-cache (serialisert AST og symboltilstand)
KodingBinær (kompilator-intern representasjon)
ByterekkefølgeLittle-endian (MSVC på x86/x64); målavhengig (Clang)
BeholderProprietær binær blob (MSVC); COFF/ELF/Mach-O objektfil med innebygd __clangast-seksjon (Clang)
KomprimeringIngen (MSVC); komprimert LLVM-bitstrøm, zlib-basert (Clang)
Typisk størrelse10 MB - 200 MB; Windows SDK PCH er vanligvis 50-200 MB
MSVC-genereringsflagg/Yc oppretter PCH; /Yu bruker den i påfølgende kompileringsenheter
Standard kildekodefilstdafx.cpp eller pch.cpp i MSVC-prosjekter
MaskinspesifisitetIkke overførbar mellom maskiner; MSVC PCH inkluderer vertspesifikk adresseinformasjon
UgyldiggjøringRegenereres automatisk når kompilatorversjon, flagg eller inkluderte headere endres
GCC-ekvivalent.gch-filendelse (GCC forhåndskompilerte hoder bruker ikke .pch)
VersjonsdeteksjonMSVC bygger inn en intern signatur; avviser utdaterte PCH-filer ved avvik i versjon eller flagg
C++20-etterfølgerC++20 Modules (.ifc i MSVC) erstatter delvis PCH i nye kodebaser
Tilknyttet OSWindows (MSVC), macOS (Xcode og Clang), Linux (Clang og GCC)
Utgitt1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
Siste versjonN/A - format is internal per compiler; MSVC PCH is regenerated by each compiler version
Spesifikasjonlearn.microsoft.com

Spørsmål og svar fra fellesskapet

spurt av brukere
Still et raskt spørsmål
Få hjelp fra folk som jobber med PCH-filer. Vær spesifikk - inkluder systemet ditt og programvareversjon.
Ingen konto nødvendig · svar vanligvis innen en dag

Ingen spørsmål ennå - vær den første til å spørre om PCH-filer.

Ofte stilte spørsmål

Hva er en .pch-fil, og kan jeg slette den?
Det er en «Precompiled Header» - en binær cache opprettet av C++-kompilatoren din for å øke hastigheten på bygging. Du kan trygt slette den; kompilatoren vil generere den på nytt ved neste bygg (som vil gå tregere akkurat den ene gangen).
Hvorfor får jeg feilmeldinger om en .pch-fil?
Som oftest er PCH-filen utdatert - enten på grunn av feil kompilatorversjon eller endrede byggflagg. Løsning: Utfør en «Clean Build» (Build > Clean Solution i Visual Studio, og deretter Rebuild).
Bør jeg sjekke inn .pch-filer i kildekontroll?
Nei. De er maskinspesifikke binære bygg-artefakter og kan være på flere hundre MB. Legg til *.pch i .gitignore.
Hvordan åpner jeg en .pch-fil?
Det gjør du ikke - det er en binær kompilator-cache uten menneskelig lesbart innhold. Hvis du vil inspisere innholdet i et forhåndskompilert hode, se på kildekoden i .h-filen den ble generert fra (stdafx.h eller pch.h i Visual Studio-prosjekter).
Brukes .pch bare av Visual Studio?
Visual Studio er hovedbrukeren av filendelsen .pch. Clang oppretter også PCH-filer med filendelsen .pch. GCC bruker .gch i stedet. Hver kompilators format er inkompatibelt med de andre.

Referanser

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

Utforsk videre

på tvers av databasen

Populære filendelser denne uken

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)

Relaterte filendelser

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

Gratis filverktøy

En filidentifikator og bildekonvertering i nettleseren - alt kjører på din enhet.

Åpne verktøykassen

Bla i filendelser A-Å