Что такое файл Prefix.pch в Xcode?

Так много разработчиков добавляют различные удобные макросы в Prefix.pch, Но мой вопрос в том, что это Prefix.pch файл.

  • Если я уберу это Prefix.pch файл из моего Xcodeтогда будет ли запущено мое приложение? Или это покажет какую-либо ошибку? Или это будет сбой во время сборки?

  • Как я могу запустить свое приложение без Prefix.pch файл

3 ответа

Решение

Предварительно скомпилированный заголовок.

Что это?

Prefix.pch это предварительно скомпилированный заголовок Предварительно скомпилированные заголовки были изобретены для ускорения компиляции. Вместо того, чтобы анализировать одни и те же заголовочные файлы снова и снова, эти файлы анализируются один раз, заблаговременно.

Xcode

В XCode вы добавляете импорт файлов заголовков, которые вы хотите, в "заголовок префикса", и включаете Precompile Prefix Header так что они предварительно скомпилированы. Но идея префиксного заголовка отличается от прекомпиляции.

Заголовок префикса неявно включается в начале каждого исходного файла. Это как каждый исходный файл добавляет

#import "Prefix.pch"

в верхней части файла, прежде чем что-либо еще.

Удаление это.

Вы можете удалить предварительно скомпилированный заголовок. На этот вопрос уже ответили в теме, на которую я ссылаюсь ниже. Он содержит всю необходимую информацию, а также полезные комментарии.

Можно ли удалить файл Prefix.pch из проекта Xcode?

Что такое файл Prefix.pch?

.pch - заголовок прекомпиляции.

В языках программирования C и C++ заголовочный файл - это файл, текст которого может автоматически включаться препроцессором C в другой исходный файл, обычно это определяется использованием директив компилятора в исходном файле.

Заголовки префиксов компилируются и сохраняются в кэше, а затем автоматически включаются в каждый файл во время компиляции. Это может ускорить компиляцию и позволит вам включить файл без добавления оператора импорта в каждый файл, использующий его. Они не требуются, и на самом деле медленная компиляция, когда вы их меняете.

Да, вы можете скомпилировать и запустить проект без файла.pch

В Xcode перейдите к настройкам сборки вашей цели (Command-Option-E, вкладка build) и снимите флажок Precompile Prefix Header (GCC_PRECOMPILE_PREFIX_HEADER). Вы также можете удалить значение параметра Заголовок префикса, если хотите.

Также обратите внимание, что

Не помещайте макросы в файл.pch! Файл.pch по определению является прекомпилированным заголовком конкретного проекта. Он действительно не должен использоваться вне контекста проекта, и он не должен содержать ничего, кроме #include и #imports.

Если у вас есть какие-то макросы и такие, которые вы хотите разделить между заголовками, вставьте их в собственный файл заголовка - Common.h или любой другой - и #include, что в начале.pch

Заголовки префиксов компилируются и сохраняются в кэше, а затем автоматически включаются в каждый файл во время компиляции. Это может ускорить компиляцию и позволит вам включить файл без добавления оператора импорта в каждый файл, использующий его. Они не требуются, и на самом деле медленная компиляция, когда вы их меняете.

В общем-то .pch формирование имен файлов yourProjectName-Prefix.pch

История:

#include => #import => .pch

#include vs #import

Предварительно скомпилированные заголовки - prefix.pch

#include против @importимеет недостаток - медленное время сборки, потому что компилятор должен анализировать и компилировать столько раз, сколько.h файлы были импортированы.

Precompiled header file - .pch- собирает общие заголовки. Когда этот файл является предварительно скомпилированным, его можно использовать в исходных файлах, что ускоряет время сборки.

Давайте посмотрим на Prefix.pch образец:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

Добавить .pch файл перейти к Build Settings:

Разработчик должен управлять .pch файл, который требует дополнительных затрат на его поддержку.

Следующий шаг @import [Около]

Другие вопросы по тегам