XCODE Преобразующий PCH дважды; второй раз с неправильным языком

StackOverflow https://stackoverflow.com/questions/4091489

  •  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 - было некоторое время, так как я сохнул с этим).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top