.PCH

PCH-fil

Precompiled Header File
Stil et spørgsmål
HURTIGT SVAR

En PCH-fil er en Precompiled Header - en binær cache genereret automatisk af en C++ compiler (Visual Studio, Clang eller Xcode) for at fremskynde builds ved at gemme den parsede tilstand af store header-filer. Du skal aldrig åbne eller oprette en manuelt. Hvis du ser en PCH-relateret build-fejl, skal du køre en «Clean Build» og genopbygge projektet.

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

På denne side

19k+ filtyper indekseret
Sidst gennemset Sep 5, 2026

Er du ikke sikker på, hvad din fil er?

Træk en fil over i vores identifikator - vi læser kun de første bytes for at navngive formatet.

Identificer en fil

Hvad er PCH-filformatet?

En .pch-fil er en prækompileret header - en binær compiler-cache genereret automatisk under build-processen. I stedet for at gen-parse store header-filer som Windows SDK eller stdafx.h ved hver kompileringsenhed, serialiserer compileren sin interne tilstand - symboltabeller, AST-noder, makrodefinitioner, include-guard-flag - til et .pch-øjebliksbillede. Efterfølgende kompileringsenheder indlæser dette øjebliksbillede direkte, hvilket reducerer build-tiderne dramatisk for store C- og C++-projekter.

MSVC producerer .pch-filer via /Yc compiler-flaget, typisk fra en dedikeret stub-kildefil ved navn pch.cpp eller stdafx.cpp. Clang gemmer sine prækompilerede headere som en komprimeret LLVM-bitstream indlejret i en indfødt objektfil i en sektion kaldet __clangast. GCC's modstykke bruger filendelsen .gch i stedet for .pch.

Formatet er helt compiler-internt - proprietært, binært og kan ikke overføres mellem maskiner. En .pch-fil bliver ugyldig, hver gang compiler-versionen, compiler-flagene eller en inkluderet header ændres; build-systemet regenererer den automatisk. Typiske størrelser varierer fra 10 MB til over 200 MB, når Windows SDK-headere er inkluderet.

Brugere opretter eller åbner aldrig .pch-filer manuelt. Det er sikkert at slette en - det næste build genopretter den, og en «clean rebuild» er standardløsningen på vedvarende PCH-relaterede fejl. C++20 Modules reducerer delvist afhængigheden af prækompilerede headere i nye kodebaser, men .pch forbliver den dominerende mekanisme for kompileringshastighed i eksisterende C- og C++-projekter.

Sikkerhed og tryghed

RISIKO: LOW

En .pch er et internt compiler-build-artefakt. Den kan ikke køre kode og eksekveres ikke af operativsystemet. Ingen meningsfuld angrebsvektor; filen genereres lokalt af build-systemet og er maskinspecifik.

Formatdetaljer

kort fortalt
FULDSTÆNDIGT NAVNPrecompiled Header Fileogså kendt som PCH file, precompiled header
UDVIKLERMicrosoft (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 compiler-cache (serialiseret compiler AST/symboltilstand)
Dette filtypenavn bruges også af…
  • Apple Xcode Prefix Header - Xcode (før Swift) brugte en .pch prefix-header (kildefil, ikke binær) til at prækompilere Objective-C-headere; konceptet er det samme, men filen er en tekst-header, ikke det binære output.

Programmer der åbner PCH-filer

Windows2 apps
Microsoft Visual Studio Freemium Visual Studio opretter og bruger .pch automatisk, når der bygges C/C++-projekter. Hvis der opstår PCH-fejl: Build > Clean Solution, derefter Rebuild Solution. Åbn ikke .pch-filen direkte - det er et binært build-artefakt.
Visual Studio Code + C/C++ Extension Open-source Clang- eller MSVC-toolchain håndterer PCH-generering under build; åbnes ikke manuelt.
macOS1 app
Apple Xcode Gratis Xcode bruger .pch til prefix-headere (tekstkilde) og genererer binære PCH-caches internt. Clean build (Product > Clean Build Folder) løser PCH-fejl.
Linux2 apps
GCC (command line) Open-source GCC genererer .gch-filer (ikke .pch) til prækompilerede headere. Bemærk: GCC PCH-outputfilendelsen er .gch, ikke .pch.
Clang (command line) Open-source clang -x c++-header header.h -o header.pch genererer en PCH; clang -include-pch header.pch bruger den.

Tekniske detaljer

dyb specifikation
FiltypeBinær compiler-cache (serialiseret AST og symboltilstand)
KodningBinær (compiler-intern repræsentation)
Byte-ordenLittle-endian (MSVC på x86/x64); målafhængig (Clang)
ContainerProprietær binær blob (MSVC); COFF/ELF/Mach-O objektfil med indlejret __clangast-sektion (Clang)
KomprimeringIngen (MSVC); komprimeret LLVM-bitstream, zlib-baseret (Clang)
Typisk størrelse10 MB - 200 MB; Windows SDK PCH er typisk 50-200 MB
MSVC-genereringsflag/Yc opretter PCH; /Yu bruger den i efterfølgende kompileringsenheder
Standard kildefilstdafx.cpp eller pch.cpp i MSVC-projekter
MaskinspecificitetKan ikke overføres mellem maskiner; MSVC PCH indeholder værtsspecifik adresseinformation
UgyldiggørelseRegenereres automatisk, når compiler-version, flag eller en inkluderet header ændres
GCC-modstykke.gch-filendelse (GCC prækompilerede headere bruger ikke .pch)
VersionsdetekteringMSVC indlejrer intern signatur; afviser forældede PCH-filer ved uoverensstemmelse i version eller flag
C++20-efterfølgerC++20 Modules (.ifc i MSVC) erstatter delvist PCH i nye kodebaser
Associeret OSWindows (MSVC), macOS (Xcode og Clang), Linux (Clang og GCC)
Udgivet1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
Seneste versionN/A - format is internal per compiler; MSVC PCH is regenerated by each compiler version
Specifikationlearn.microsoft.com

Fællesskabets Q&A

spurgt af brugere
Stil et hurtigt spørgsmål
Få hjælp fra folk, der arbejder med PCH-filer. Vær specifik - medtag dit system og din softwareversion.
Ingen konto nødvendig · svar normalt inden for en dag

Ingen spørgsmål endnu - vær den første til at spørge om PCH-filer.

Ofte stillede spørgsmål

Hvad er en .pch-fil, og kan jeg slette den?
Det er en Precompiled Header - en binær cache oprettet af din C++ compiler for at fremskynde builds. Du kan roligt slette den; compileren vil regenerere den ved næste build (hvilket vil være langsommere den ene gang).
Hvorfor får jeg fejl vedrørende en .pch-fil?
Oftest er PCH-filen forældet - uoverensstemmelse i compiler-version eller ændrede build-flag. Løsning: kør en «Clean Build» (Build > Clean Solution i Visual Studio, derefter Rebuild).
Bør jeg committe .pch-filer til versionsstyring?
Nej. De er maskinspecifikke binære build-artefakter og kan fylde hundredvis af MB. Tilføj *.pch til .gitignore.
Hvordan åbner jeg en .pch-fil?
Det gør du ikke - det er en binær compiler-cache uden læsbart indhold. Hvis du vil inspicere indholdet af en prækompileret header, skal du kigge på den kilde- .h-fil, den blev genereret fra (stdafx.h eller pch.h i Visual Studio-projekter).
Bruges .pch kun af Visual Studio?
Visual Studio er den primære bruger af .pch-filendelsen. Clang opretter også PCH-filer med en .pch-endelse. GCC bruger .gch i stedet. Hver compilers format er inkompatibelt med de andre.

Referencer

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

Udforsk mere

på tværs af databasen

Populære filtyper i denne uge

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)

Relaterede filtyper

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

Gratis filværktøjer

En fil-identifikator og billedkonverter direkte i browseren - alt kører på din enhed.

Åbn værktøjskassen

Gennemse filtyper A-Å