.PCH

Файл PCH

Precompiled Header File
Задать вопрос
БЫСТРЫЙ ОТВЕТ

Файл PCH - это предварительно скомпилированный заголовочный файл (Precompiled Header), представляющий собой бинарный кэш, который автоматически создается компилятором C++ (Visual Studio, Clang или Xcode) для ускорения сборки путем сохранения состояния парсинга больших заголовочных файлов. Вам никогда не нужно открывать или создавать его вручную. Если вы видите ошибку сборки, связанную с PCH, выполните «Очистку решения» (Clean Build) и пересоберите проект.

Разработчик: Microsoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format) Категория: Файлы разработчика MIME: application/octet-stream
ОТКРЫВАЕТСЯ НА Windows macOS Linux
Связанные: .DO · .MD · .HEX · .XSD

На этой странице

Проиндексировано расширений: 19k+
Последняя проверка: Sep 5, 2026

Не знаете, что это за файл?

Перетащите любой файл в наш идентификатор - мы прочитаем первые байты, чтобы определить формат.

Идентифицировать файл

Что такое формат файла PCH?

Файл .pch - это предварительно скомпилированный заголовок, бинарный кэш компилятора, создаваемый автоматически в процессе сборки. Вместо того чтобы заново анализировать объемные заголовочные файлы, такие как Windows SDK или stdafx.h, в каждой единице трансляции, компилятор сериализует свое внутреннее состояние - таблицы символов, узлы AST, определения макросов, флаги include-guard - в снимок .pch. Последующие единицы трансляции загружают этот снимок напрямую, что значительно сокращает время сборки крупных проектов на C и C++.

MSVC создает файлы .pch с помощью флага компилятора /Yc, обычно из специального исходного файла-заглушки с именем pch.cpp или stdafx.cpp. Clang хранит свои предварительно скомпилированные заголовки в виде сжатого битстрима LLVM, встроенного в нативный объектный файл в секции с именем __clangast. Эквивалент в GCC использует расширение .gch вместо .pch.

Формат является полностью внутренним для компилятора - проприетарным, бинарным и непереносимым между машинами. Файл .pch становится недействительным при изменении версии компилятора, флагов компиляции или любого включенного заголовка; система сборки регенерирует его автоматически. Типичный размер варьируется от 10 МБ до более чем 200 МБ, если включены заголовки Windows SDK.

Пользователи никогда не создают и не открывают файлы .pch вручную. Удаление файла безопасно - следующая сборка создаст его заново, а полная пересборка является стандартным решением при возникновении стойких ошибок, связанных с PCH. Модули C++20 частично снижают зависимость от предварительно скомпилированных заголовков в новых кодовых базах, но .pch остается доминирующим механизмом ускорения компиляции в существующих проектах на C и C++.

Безопасность и защита

РИСК: LOW

Файл .pch является внутренним артефактом сборки компилятора. Он не может исполнять код и не запускается операционной системой. Значимых векторов атаки нет; файл создается локально системой сборки и привязан к конкретной машине.

Детали формата

в двух словах
ПОЛНОЕ НАЗВАНИЕPrecompiled Header Fileтакже известен как PCH file, precompiled header
РАЗРАБОТЧИКMicrosoft (MSVC); also Clang/LLVM and GCC (each with proprietary binary format)с 1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
MIME-ТИПapplication/octet-stream
ТИПБинарный кэш компилятора (сериализованное состояние AST/символов компилятора)
СВЯЗАННЫЕ.do.md.hex.xsd
Это расширение также используется в…
  • Apple Xcode Prefix Header - Xcode (до появления Swift) использовал префиксный заголовок .pch (исходный файл, не бинарный) для предварительной компиляции заголовков Objective-C; концепция та же, но файл является текстовым заголовком, а не бинарным выводом.

Программы, открывающие файлы PCH

Windows2 apps
Microsoft Visual Studio Freemium Visual Studio автоматически создает и использует .pch при сборке проектов C/C++. При возникновении ошибок PCH: Сборка > Очистить решение, затем Пересобрать решение. Не открывайте файл .pch напрямую - это бинарный артефакт сборки.
Visual Studio Code + C/C++ Extension Открытый код Инструментарий Clang или MSVC управляет генерацией PCH во время сборки; вручную не открывается.
macOS1 app
Apple Xcode Бесплатно Xcode использует .pch для префиксных заголовков (текстовый исходник) и генерирует бинарные кэши PCH внутри системы. Очистка сборки (Product > Clean Build Folder) устраняет ошибки PCH.
Linux2 apps
GCC (command line) Открытый код GCC генерирует файлы .gch (не .pch) для предварительно скомпилированных заголовков. Примечание: расширение вывода PCH в GCC - .gch, а не .pch.
Clang (command line) Открытый код Команда «clang -x c++-header header.h -o header.pch» генерирует PCH; «clang -include-pch header.pch» использует его.

Технические подробности

глубокая спецификация
Тип файлаБинарный кэш компилятора (сериализованное состояние AST и символов)
КодировкаБинарная (внутреннее представление компилятора)
Порядок байтовLittle-endian (MSVC на x86/x64); зависит от целевой платформы (Clang)
КонтейнерПроприетарный бинарный блок (MSVC); объектный файл COFF/ELF/Mach-O со встроенной секцией __clangast (Clang)
СжатиеНет (MSVC); сжатый битстрим LLVM на базе zlib (Clang)
Типичный размер10 МБ - 200 МБ; PCH для Windows SDK обычно 50-200 МБ
Флаг генерации MSVC/Yc создает PCH; /Yu использует его в последующих единицах трансляции
Исходный файл по умолчаниюstdafx.cpp или pch.cpp в проектах MSVC
Специфичность для машиныНе переносится между машинами; MSVC PCH содержит информацию об адресах, специфичную для хоста
АннулированиеАвтоматически регенерируется при изменении версии компилятора, флагов или любого включенного заголовка
Эквивалент в GCCРасширение .gch (предварительно скомпилированные заголовки GCC не используют .pch)
Определение версииMSVC встраивает внутреннюю сигнатуру; отклоняет устаревшие файлы PCH при несоответствии версии или флагов
Преемник в C++20Модули C++20 (.ifc в MSVC) частично заменяют PCH в новых кодовых базах
Связанные ОСWindows (MSVC), macOS (Xcode и Clang), Linux (Clang и GCC)
Выпущен1988 (Microsoft C Compiler 6.0 for MS-DOS, first PCH implementation); mainstream adoption with MSVC for Windows in the 1990s
Последняя версияN/A - format is internal per compiler; MSVC PCH is regenerated by each compiler version
Спецификацияlearn.microsoft.com

Вопросы и ответы сообщества

спрошено пользователями
Задать быстрый вопрос
Получите помощь от людей, работающих с файлами PCH. Будьте конкретны - укажите вашу систему и версию ПО.
Аккаунт не нужен · ответы обычно в течение дня

Вопросов пока нет - станьте первым, кто спросит о файлах PCH.

Часто задаваемые вопросы

Что такое файл .pch и можно ли его удалить?
Это Precompiled Header - бинарный кэш, созданный вашим компилятором C++ для ускорения сборки. Вы можете смело удалить его; компилятор создаст его заново при следующей сборке (которая в этот раз будет медленнее).
Почему я получаю ошибки, связанные с файлом .pch?
Чаще всего PCH устарел - несовпадение версии компилятора или измененные флаги сборки. Решение: выполните «Очистку решения» (Build > Clean Solution в Visual Studio, затем Rebuild).
Нужно ли добавлять файлы .pch в систему контроля версий?
Нет. Это бинарные артефакты сборки, специфичные для конкретной машины, и они могут весить сотни мегабайт. Добавьте *.pch в .gitignore.
Как открыть файл .pch?
Никак - это бинарный кэш компилятора без человекочитаемого содержимого. Если вы хотите просмотреть содержимое предварительно скомпилированного заголовка, посмотрите исходный файл .h, из которого он был создан (stdafx.h или pch.h в проектах Visual Studio).
Используется ли .pch только в Visual Studio?
Visual Studio - основной пользователь расширения .pch. Clang также создает PCH-файлы с расширением .pch. GCC использует вместо него .gch. Форматы каждого компилятора несовместимы друг с другом.

Ссылки

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

Узнать больше

по всей базе данных

Популярные расширения на этой неделе

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)

Похожие расширения

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

Бесплатные инструменты для файлов

Идентификатор файлов и конвертер изображений в браузере - все работает на вашем устройстве.

Открыть инструменты

Обзор расширений файлов A-Z