2011-01-18 3 views
37

Проект Xcode автоматически создает файл Prefix.pch. Когда я удалил этот файл и попытался построить, у меня возникла ошибка сборки с сообщением «* Файл _Prefix.pch отсутствует.Можно ли удалить файл Prefix.pch из проекта Xcode?

  • Является ли файл Prefix.pch обязательным для компиляции с Xcode?
  • Как я могу построить без файла Prefix.pch?
+6

Зачем ты удалил его? – spender

+1

Аналогичная проблема, рад, что кто-то спросил - я проверяю проект Xcode в TFS, и TFS рекомендовал исключить файл .PCH (типа «Precompiled Header File»). - Похоже, что Xcode недостаточно умен, чтобы просто перекомпилировать заголовки, если этот файл отсутствует, поэтому я включу его сейчас. – BrainSlugs83

ответ

59

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

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

+8

Чтобы процитировать совет самого Xcode: «Примечание: предварительная компиляция заголовка префикса будет наиболее эффективной, если содержимое заголовка префикса или любого содержащегося в нем файла редко изменяется. Если содержимое заголовка префикса или любого его файла, это может негативно сказаться на общем времени сборки ». Я предлагаю вам сохранить файл .pch и просто добавлять директивы импорта для используемых вами фреймворков. Вы почти никогда не измените его, и это почти всегда ускорит процесс. –

0

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