Многие разработчики добавляют различные удобные макросы в Prefix.pch
. Но мой вопрос в том, что это за Prefix.pch
файл.
Если я удалю этот
Prefix.pch
файл из своегоXcode
, мое приложение запустится? Или покажет ошибку? Или он вылетит во время сборки?Как запустить приложение без
Prefix.pch
файла
Ответы:
Предварительно скомпилированный заголовок.
Что это?
A
Prefix.pch
- это предварительно скомпилированный заголовок. Предварительно скомпилированные заголовки были изобретены, чтобы ускорить компиляцию . Вместо того, чтобы анализировать одни и те же файлы заголовков снова и снова, эти файлы анализируются один раз, заранее.Xcode
В Xcode вы добавляете импорт нужных файлов заголовков в «заголовок префикса» и включаете их,
Precompile Prefix Header
чтобы они были предварительно скомпилированы. Но идея заголовка префикса отличается от прекомпиляции.Заголовок префикса неявно включается в начало каждого исходного файла. Как будто каждый исходный файл добавляет
вверху файла, прежде всего.
Удаление его.
Вы можете удалить предварительно скомпилированный заголовок. На этот вопрос уже был дан ответ в теме, на которую я ссылаюсь ниже. Он содержит всю необходимую информацию, а также полезные комментарии.
Можно ли удалить файл Prefix.pch из проекта Xcode?
источник
Что такое файл Prefix.pch?
.Pch - это предварительно скомпилированный заголовок.
В языках программирования C и C ++ файл заголовка - это файл, текст которого может быть автоматически включен препроцессором C в другой исходный файл, что обычно определяется с помощью директив компилятора в исходном файле.
Заголовки префиксов компилируются и сохраняются в кеше, а затем автоматически включаются в каждый файл во время компиляции. Это может ускорить компиляцию и позволяет включать файл без добавления оператора импорта в каждый файл, который его использует. Они не требуются и фактически замедляют компиляцию всякий раз, когда вы их меняете.
Да, вы можете скомпилировать и запустить проект без файла .pch
В Xcode перейдите к настройкам вашей целевой сборки (Command-Option-E, вкладка build) и снимите флажок Precompile Prefix Header (GCC_PRECOMPILE_PREFIX_HEADER). Вы также можете удалить значение параметра «Заголовок префикса», если хотите.
Также обратите внимание, что,
Не помещайте макросы в файл .pch! Файл .pch по определению представляет собой предварительно скомпилированный заголовок конкретного проекта. Его действительно не следует использовать вне контекста проекта, и он действительно не должен содержать ничего, кроме #includes и #imports.
Если у вас есть макросы, которые вы хотите разделить между заголовками, вставьте их в отдельный файл заголовка - Common.h или что-то еще - и #include это в начале .pch
источник
Заголовки префиксов компилируются и сохраняются в кеше, а затем автоматически включаются в каждый файл во время компиляции. Это может ускорить компиляцию и позволяет включать файл без добавления оператора импорта в каждый файл, который его использует. Они не требуются и фактически замедляют компиляцию всякий раз, когда вы их меняете.
Обычно
.pch
формирование именования файловyourProjectName-Prefix.pch
источник
История:
#include vs #import
Предварительно скомпилированные заголовки - prefix.pch
#include
У vs@import
есть недостаток - медленное время сборки, поскольку компилятор должен анализировать и компилировать столько раз, сколько.h
файлов было импортировано.Precompiled header file - .pch
- собирает общие заголовки. Когда этот файл является предварительно скомпилированным, его можно использовать в исходных файлах, что ускоряет время сборки.Взглянем на
Prefix.pch
образец:Чтобы добавить
.pch
файл, перейдите по ссылкеBuild Settings
:Разработчик должен управлять
.pch
файлом, что требует дополнительных затрат на его поддержку.Следующий шаг -
@import
[О программе]источник