Я создавал инструментарий пользовательского интерфейса для MacOS и Windows, но сейчас я работаю и тестирую стороны MacOS. Недавно, когда я компилирую свой код, используя CMake, я получаю необоснованное количество ошибок, включая заголовок Cocoa. Вот это призрак ошибок.
Вы на самом деле не задаете вопрос … но из-за случайного взгляда на то, какую небольшую информацию вы предоставляете, похоже, что код ObjC выполняется через компилятор не из ObjC.
Это обычно происходит, когда кто-то включает заголовок ObjC из исходного файла C или C ++. Очень распространенный способ вызвать это — добавить предварительно скомпилированный заголовок в ваш проект, включающий Cocoa / Cocoa.h. Предварительно скомпилированный заголовок используется для все Языки C-спуска, которые вы компилируете, а также для файлов C или C ++.
Чтобы избежать включения кода, специфичного для ObjC, в файлы, не относящиеся к ObjC, поместите его в #if __OBJC__
макросы препроцессора. (Это также относится к коду C ++ в вашем предварительно скомпилированном заголовке, который вы хотите обернуть в #if __cplusplus
)
Других решений пока нет …