.PCH

Plik PCH

Precompiled Header File
Zadaj pytanie
SZYBKA ODPOWIEDŹ

Plik PCH to Precompiled Header - binarna pamięć podręczna generowana automatycznie przez kompilator C++ (Visual Studio, Clang lub Xcode) w celu przyspieszenia budowania projektu poprzez zapisanie przetworzonego stanu dużych plików nagłówkowych. Nigdy nie otwiera się ani nie tworzy go ręcznie. Jeśli zobaczysz błąd budowania związany z PCH, wykonaj „Clean Build” i przebuduj projekt.

Deweloper: Microsoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format) Kategoria: Pliki developerskie MIME: application/octet-stream
OTWIERA SIĘ NA Windows macOS Linux
Powiązane: .DO · .MD · .HEX · .XSD

Na tej stronie

Zindeksowano 19k+ rozszerzeń
Ostatnia weryfikacja Sep 5, 2026

Nie wiesz, co to za plik?

Przeciągnij dowolny plik do naszego identyfikatora - odczytujemy tylko pierwsze bajty, aby nazwać format.

Zidentyfikuj plik

Co to jest format pliku PCH?

Plik .pch to skompilowany nagłówek - binarna pamięć podręczna kompilatora generowana automatycznie podczas procesu budowania. Zamiast ponownego analizowania dużych plików nagłówkowych, takich jak Windows SDK czy stdafx.h w każdej jednostce kompilacji, kompilator serializuje swój stan wewnętrzny - tablice symboli, węzły AST, definicje makr, flagi include-guard - do migawki .pch. Kolejne jednostki kompilacji ładują tę migawkę bezpośrednio, co drastycznie skraca czas budowania dużych projektów C i C++.

MSVC tworzy pliki .pch za pomocą flagi kompilatora /Yc, zazwyczaj z dedykowanego pliku źródłowego o nazwie pch.cpp lub stdafx.cpp. Clang przechowuje swoje skompilowane nagłówki jako skompresowany strumień bitowy LLVM osadzony wewnątrz natywnego pliku obiektowego w sekcji o nazwie __clangast. Odpowiednik w GCC używa rozszerzenia .gch zamiast .pch.

Format ten jest całkowicie wewnętrzny dla kompilatora - zastrzeżony, binarny i nieprzenoszalny między maszynami. Plik .pch traci ważność za każdym razem, gdy zmienia się wersja kompilatora, flagi kompilacji lub jakikolwiek dołączony nagłówek; system budowania regeneruje go automatycznie. Typowe rozmiary wahają się od 10 MB do ponad 200 MB, gdy dołączone są nagłówki Windows SDK.

Użytkownicy nigdy nie tworzą ani nie otwierają plików .pch ręcznie. Usunięcie go jest bezpieczne - następne budowanie go odtworzy, a czysta rekompilacja (clean rebuild) jest standardowym rozwiązaniem w przypadku uporczywych błędów związanych z PCH. Moduły C++20 częściowo zmniejszają zależność od skompilowanych nagłówków w nowych bazach kodu, ale .pch pozostaje dominującym mechanizmem przyspieszania kompilacji w istniejących projektach C i C++.

Bezpieczeństwo

RYZYKO: LOW

Plik .pch jest wewnętrznym artefaktem budowania kompilatora. Nie może uruchamiać kodu i nie jest wykonywany przez system operacyjny. Brak istotnego wektora ataku; plik jest generowany lokalnie przez system budowania i jest specyficzny dla maszyny.

Szczegóły formatu

w pigułce
PEŁNA NAZWAPrecompiled Header Fileznany również jako PCH file, precompiled header
DEWELOPERMicrosoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format)od 1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
TYP MIMEapplication/octet-stream
TYPBinarna pamięć podręczna kompilatora (zserializowany stan AST/symboli kompilatora)
POWIĄZANE.do.md.hex.xsd
To rozszerzenie jest również używane przez…
  • Apple Xcode Prefix Header - Xcode (sprzed ery Swift) używał nagłówka prefiksu .pch (plik źródłowy, nie binarny) do wstępnej kompilacji nagłówków Objective-C; koncepcja jest ta sama, ale plik jest nagłówkiem tekstowym, a nie binarnym wynikiem.

Programy otwierające pliki PCH

Windows2 apps
Microsoft Visual Studio Freemium Visual Studio automatycznie tworzy i używa .pch podczas budowania projektów C/C++. Jeśli wystąpią błędy PCH: Kompilacja > Wyczyść rozwiązanie, a następnie Przebuduj rozwiązanie. Nie otwieraj pliku .pch bezpośrednio - jest to binarny artefakt budowania.
Visual Studio Code + C/C++ Extension Open-source Zestaw narzędzi Clang lub MSVC obsługuje generowanie PCH podczas budowania; nie jest otwierany ręcznie.
macOS1 app
Apple Xcode Darmowy Xcode używa .pch dla nagłówków prefiksów (źródło tekstowe) i wewnętrznie generuje binarne pamięci podręczne PCH. Czyste budowanie (Product > Clean Build Folder) rozwiązuje błędy PCH.
Linux2 apps
GCC (command line) Open-source GCC generuje pliki .gch (nie .pch) dla skompilowanych nagłówków. Uwaga: rozszerzenie wyjściowe PCH w GCC to .gch, a nie .pch.
Clang (command line) Open-source Polecenie clang -x c++-header header.h -o header.pch generuje PCH; clang -include-pch header.pch używa go.

Szczegóły techniczne

specyfikacja
Typ plikuBinarna pamięć podręczna kompilatora (zserializowane AST i stan symboli)
KodowanieBinarne (wewnętrzna reprezentacja kompilatora)
Kolejność bajtówLittle-endian (MSVC na x86/x64); zależna od celu (Clang)
KontenerZastrzeżony binarny blob (MSVC); plik obiektowy COFF/ELF/Mach-O z osadzoną sekcją __clangast (Clang)
KompresjaBrak (MSVC); skompresowany strumień bitowy LLVM, oparty na zlib (Clang)
Typowy rozmiar10 MB - 200 MB; PCH dla Windows SDK zwykle 50-200 MB
Flaga generowania MSVC/Yc tworzy PCH; /Yu używa go w kolejnych jednostkach kompilacji
Domyślny plik źródłowystdafx.cpp lub pch.cpp w projektach MSVC
Specyficzność maszynyNieprzenoszalny między maszynami; MSVC PCH zawiera informacje o adresach specyficzne dla hosta
UnieważnienieAutomatycznie regenerowany przy zmianie wersji kompilatora, flag lub dowolnego dołączonego nagłówka
Odpowiednik GCCRozszerzenie .gch (skompilowane nagłówki GCC nie używają .pch)
Wykrywanie wersjiMSVC osadza wewnętrzną sygnaturę; odrzuca nieaktualne pliki PCH przy niezgodności wersji lub flag
Następca w C++20Moduły C++20 (.ifc w MSVC) częściowo zastępują PCH w nowych bazach kodu
Powiązany system operacyjnyWindows (MSVC), macOS (Xcode i Clang), Linux (Clang i GCC)
Wydano1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
Najnowsza wersjaN/A - format is internal per compiler; MSVC PCH is regenerated by each compiler version
Specyfikacjalearn.microsoft.com

Pytania i odpowiedzi społeczności

pytania użytkowników
Zadaj szybkie pytanie
Uzyskaj pomoc od osób pracujących z plikami PCH. Bądź precyzyjny - podaj system i wersję oprogramowania.
Konto nie jest wymagane · odpowiedzi zazwyczaj w ciągu doby

Brak pytań - bądź pierwszą osobą, która zapyta o pliki PCH.

Najczęściej zadawane pytania

Co to jest plik .pch i czy mogę go usunąć?
Jest to Precompiled Header - binarna pamięć podręczna utworzona przez kompilator C++ w celu przyspieszenia budowania. Możesz go bezpiecznie usunąć; kompilator wygeneruje go ponownie przy następnym budowaniu (które ten jeden raz potrwa dłużej).
Dlaczego otrzymuję błędy dotyczące pliku .pch?
Najczęściej PCH jest nieaktualny - niezgodna wersja kompilatora lub zmienione flagi budowania. Rozwiązanie: wykonaj Clean Build (Kompilacja > Wyczyść rozwiązanie w Visual Studio, a następnie Przebuduj).
Czy powinienem dodawać pliki .pch do systemu kontroli wersji?
Nie. Są to specyficzne dla maszyny binarne artefakty budowania i mogą zajmować setki MB. Dodaj *.pch do .gitignore.
Jak otworzyć plik .pch?
Nie otwiera się go - to binarna pamięć podręczna kompilatora bez treści czytelnej dla człowieka. Jeśli chcesz sprawdzić zawartość skompilowanego nagłówka, zajrzyj do źródłowego pliku .h, z którego został wygenerowany (stdafx.h lub pch.h w projektach Visual Studio).
Czy .pch jest używany tylko przez Visual Studio?
Visual Studio jest głównym użytkownikiem rozszerzenia .pch. Clang również tworzy pliki PCH z rozszerzeniem .pch. GCC używa zamiast tego .gch. Format każdego kompilatora jest niekompatybilny z pozostałymi.

Źródła

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

Odkrywaj dalej

w całej bazie danych

Najpopularniejsze rozszerzenia w tym tygodniu

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)

Powiązane rozszerzenia

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

Darmowe narzędzia do plików

Identyfikator plików i konwerter obrazów w przeglądarce - wszystko działa na Twoim urządzeniu.

Otwórz przybornik

Przeglądaj rozszerzenia plików A-Z