XCODE Преобразующий PCH дважды; второй раз с неправильным языком
-
28-09-2019 - |
Вопрос
У меня есть объективный C проект в XCode. При строительстве XCODE представляют собой подачу моего префикса PCH-файла дважды. Первый раз, он использует аргументы -x objective-c-header
, И это работает нормально. Второй раз, он использует -x c-header
, и не удается (из-за файла, содержащего объективный C-код).
У меня есть другой проект, который настроен то же самое, но это строит нормально. (PCH - только один раз, с целью C.) Я сравнил настройки сборки для двух проектов, и ничего не совсем не отличалось. Я сравнил настройки сборки для целей бок о бок, и опять же, нет соответствующих различий.
Я пытался убирать все цели и восстановление, но не повезло. Я пытался перезапустить Xcode, но не повезло. Я поправил папку проекта для c-header
, но он только появился в журналах сборки.
Что может быть причиной этого?
Решение 2
Я ненавижу отвечать на мой вопрос, но я понял его. Я отключил преобразование заголовка префикса, чтобы посмотреть, позволит ли мне продолжать работать. Создание все еще не удалось с той же ошибкой, но она не удалась, включая файл из файла .c, я забыл, что я имел в проекте. По-видимому, существование этого файла .c - это разница между этим проектом, а другой. Теперь, когда я знаю, что происходит, я переместил свой код внутри #ifdef __OBJC__
, и все кажется хорошо.
Другие советы
Файл PCH перестраивается несколько раз, потому что в вашем проекте есть несколько языков; один раз с компилятором Objective-C и один раз с прямым файлом C, при этом у вас был код объекта за пределами Objc. #ifdef и это вызвало компилятор прямого C, чтобы захватить его обед.
Если у вас был файл C ++, вы, вероятно, в конечном итоге с 3 компиляциями PCH (IIRC - было некоторое время, так как я сохнул с этим).