.PCH

PCH-fil

Precompiled Header File
Ställ en fråga
SNABBT SVAR

En PCH-fil är en «Precompiled Header» - en binär cache som genereras automatiskt av en C++-kompilator (Visual Studio, Clang eller Xcode) för att påskynda byggprocessen genom att spara det analyserade tillståndet för stora header-filer. Du öppnar eller skapar aldrig en sådan manuellt. Om du ser ett PCH-relaterat byggfel, gör en «Clean Build» och bygg om projektet.

Utvecklare: Microsoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format) Kategori: Utvecklarfiler MIME: application/octet-stream
ÖPPNAS PÅ Windows macOS Linux
Relaterat: .DO · .MD · .HEX · .XSD

På denna sida

19k+ filtillägg indexerade
Senast granskad Sep 5, 2026

Osäker på vad din fil är?

Släpp valfri fil i vår identifierare - vi läser bara de första byten för att namnge formatet.

Identifiera en fil

Vad är filformatet PCH?

En .pch-fil är en förkompilerad header - en binär kompilator-cache som genereras automatiskt under byggprocessen. Istället för att analysera om stora header-filer som Windows SDK eller stdafx.h vid varje kompileringsenhet, serialiserar kompilatorn sitt interna tillstånd - symboltabeller, AST-noder, makrodefinitioner, include-guard-flaggor - till en .pch-ögonblicksbild. Efterföljande kompileringsenheter läser in den ögonblicksbilden direkt, vilket minskar byggtiderna dramatiskt för stora C- och C++-projekt.

MSVC producerar .pch-filer via kompilatorflaggan /Yc, vanligtvis från en dedikerad källfil vid namn pch.cpp eller stdafx.cpp. Clang lagrar sina förkompilerade headers som en komprimerad LLVM-bitström inbäddad i en infödd objektfil i en sektion kallad __clangast. GCC:s motsvarighet använder filändelsen .gch snarare än .pch.

Formatet är helt internt för kompilatorn - proprietärt, binärt och kan inte överföras mellan maskiner. En .pch-fil ogiltigförklaras när kompilatorversionen, kompilatorflaggor eller någon inkluderad header ändras; byggsystemet återskapar den automatiskt. Typiska storlekar varierar från 10 MB till över 200 MB när Windows SDK-headers inkluderas.

Användare skapar eller öppnar aldrig .pch-filer manuellt. Det är säkert att radera dem - nästa bygge återskapar filen, och en ren ombyggnad («clean rebuild») är standardåtgärden för ihållande PCH-relaterade fel. C++20 Modules minskar delvis beroendet av förkompilerade headers i nya kodbaser, men .pch förblir den dominerande mekanismen för kompileringshastighet i befintliga C- och C++-projekt.

Säkerhet & trygghet

RISK: LOW

En .pch är en intern byggartefakt från kompilatorn. Den kan inte köra kod och exekveras inte av operativsystemet. Ingen meningsfull attackvektor finns; filen genereras lokalt av byggsystemet och är maskinspecifik.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNPrecompiled Header Fileäven känd som PCH file, precompiled header
UTVECKLAREMicrosoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format)sedan 1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
MIME-TYPapplication/octet-stream
TYPBinär kompilator-cache (serialiserad kompilator-AST/symboltillstånd)
Detta filtillägg används också av…
  • Apple Xcode Prefix Header - Xcode (före Swift) använde en .pch prefix-header (källfil, inte binär) för att förkompilera Objective-C-headers; konceptet är detsamma men filen är en text-header, inte den binära utdatan.

Program som öppnar PCH-filer

Windows2 apps
Microsoft Visual Studio Freemium Visual Studio skapar och använder .pch automatiskt när C/C++-projekt byggs. Om PCH-fel uppstår: Build > Clean Solution, sedan Rebuild Solution. Öppna inte .pch-filen direkt - det är en binär byggartefakt.
Visual Studio Code + C/C++ Extension Öppen källkod Clang- eller MSVC-verktygskedjan hanterar PCH-generering under bygget; öppnas inte manuellt.
macOS1 app
Apple Xcode Gratis Xcode använder .pch för prefix-headers (textkälla) och genererar binära PCH-cacher internt. En ren byggprocess (Product > Clean Build Folder) löser PCH-fel.
Linux2 apps
GCC (command line) Öppen källkod GCC genererar .gch-filer (inte .pch) för förkompilerade headers. Notera: GCC:s utdataformat för PCH är .gch, inte .pch.
Clang (command line) Öppen källkod clang -x c++-header header.h -o header.pch genererar en PCH; clang -include-pch header.pch använder den.

Tekniska detaljer

djup specifikation
FiltypBinär kompilator-cache (serialiserad AST och symboltillstånd)
KodningBinär (kompilator-intern representation)
ByteordningLittle-endian (MSVC på x86/x64); målsystemsberoende (Clang)
ContainerProprietary binär blob (MSVC); COFF/ELF/Mach-O objektfil med inbäddad __clangast-sektion (Clang)
KomprimeringIngen (MSVC); komprimerad LLVM-bitström, zlib-baserad (Clang)
Typisk storlek10 MB - 200 MB; Windows SDK PCH är vanligtvis 50-200 MB
MSVC-genereringsflagga/Yc skapar PCH; /Yu använder den i efterföljande kompileringsenheter
Standardkällfilstdafx.cpp eller pch.cpp i MSVC-projekt
MaskinspecifikKan inte överföras mellan maskiner; MSVC PCH innehåller värdspecifik adressinformation
OgiltigförklaringÅterskapas automatiskt när kompilatorversion, flaggor eller inkluderade headers ändras
GCC-motsvarighet.gch-filändelse (GCC:s förkompilerade headers använder inte .pch)
VersionsdetekteringMSVC bäddar in en intern signatur; avvisar inaktuella PCH-filer vid versions- eller flaggfel
C++20-efterföljareC++20 Modules (.ifc i MSVC) ersätter delvis PCH i nya kodbaser
Associerat OSWindows (MSVC), macOS (Xcode och Clang), Linux (Clang och GCC)
Släppt1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
Senaste versionN/A - format is internal per compiler; MSVC PCH is regenerated by each compiler version
Specifikationlearn.microsoft.com

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med PCH-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag

Inga frågor än - bli den första att fråga om PCH-filer.

Vanliga frågor

Vad är en .pch-fil och kan jag radera den?
Det är en «Precompiled Header» - en binär cache skapad av din C++-kompilator för att snabba upp byggen. Du kan säkert radera den; kompilatorn kommer att återskapa den vid nästa bygge (vilket kommer att gå långsammare just den gången).
Varför får jag felmeddelanden om en .pch-fil?
Vanligtvis är PCH-filen inaktuell - felaktig kompilatorversion eller ändrade byggflaggor. Lösning: gör en «Clean Build» (Build > Clean Solution i Visual Studio, sedan Rebuild).
Bör jag checka in .pch-filer i källkodshanteringen?
Nej. De är maskinspecifika binära byggartefakter och kan vara hundratals MB stora. Lägg till *.pch i .gitignore.
Hur öppnar jag en .pch-fil?
Det gör du inte - det är en binär kompilator-cache utan läsbart innehåll. Om du vill inspektera innehållet i en förkompilerad header, titta på källfilen (.h) som den genererades från (stdafx.h eller pch.h i Visual Studio-projekt).
Används .pch endast av Visual Studio?
Visual Studio är den främsta användaren av filändelsen .pch. Clang skapar också PCH-filer med ändelsen .pch. GCC använder .gch istället. Varje kompilators format är inkompatibelt med de andras.

Referenser

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

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.EXEWindows Executable (Portable Executable)
5.M4AMPEG-4 Audio File
6.MDMarkdown Document
7.JPGJPEG Image
8.DATProgram Data File (generic)
9.BINCD/DVD Disc Image (BIN/CUE)
10.ICSiCalendar data file

Relaterade filtillägg

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

Gratis filverktyg

En filidentifierare och bildkonverterare direkt i webbläsaren - allt körs på din enhet.

Öppna verktygslådan

Bläddra bland filtillägg A-Ö