Добавление пустого файла .c в проект Xcode Cocoa вызывает тысячи ошибок

#objective-c #c #xcode

#objective-c #c #xcode

Вопрос:

У меня есть проект Xcode для моего приложения Cocoa. Пока все работает на Objective-C.

Проблемы начались после того, как я добавил новый файл .c из меню (Добавить файл C и заголовок): test.c и заголовок test.h.

Когда я пытаюсь скомпилировать проект, теперь возникают тысячи ошибок. Все они являются жалобами на синтаксические ошибки. Например:

 NSObjCRuntime.h: Expected identifier or '(' before '@' token
  

Оба новых файла, test.c и test.h , не содержат никакого кода, только комментарии к заголовку по умолчанию. Должно быть, что-то действительно не так с конфигурацией моего проекта. Когда я удаляю эти два файла, проект компилируется просто отлично.

Язык проекта установлен на C99. Есть ли что-нибудь еще, что я мог бы проверить?

Спасибо, Марк

Ответ №1:

если скомпилированные вами файлы ничего не содержат, то ваша проблема, скорее всего, в заголовке prefix (расширение: pch)

таким образом, вы просто переносите свои библиотечные включения на основе языка (в pch):

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

Комментарии:

1. Потрясающе, спасибо.

Ответ №2:

Проверьте свой .pch файл. Это импорт некоторого заголовка Objective-C без соответствующей защиты препроцессора.

Вы должны убедиться, что любой заголовок Objective-C или фреймворк, импортированный в вашем предварительно скомпилированном заголовке, выглядит примерно так:

 #if defined(__OBJC__)
    #import <Cocoa/Cocoa.h>
    #import <CoreData/CoreData.h>
    #import "MyConstants.h"
    ...
#endif