__OBJC__ эквивалент для Objective-C ++ - PullRequest
2 голосов
/ 17 июля 2009

Я компилирую файл .mm (Objective-C ++) для приложения iPhone, и в предварительно скомпилированном заголовке не содержится базовых классов.

Я отследил это до следующего:

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

Оказывается, __OBJC__ не определено для файлов mm, тогда как оно определено для стандартных файлов m.

Есть ли другой флаг, который я могу использовать вместо этого?

1 Ответ

2 голосов
/ 18 июля 2009

Если вы вызываете gcc с -dM -E, он остановится после предварительной обработки и перечислит все #defines. Это обычно, как я проверяю, какие встроенные определения установлены; однако я только что попробовал это с тестовым .mm файлом, и __OBJC__ определено для меня, поэтому я не уверен, почему это не определено для вас.

$ echo "int foo() {};" > tmp.mm
$ gcc -dM -E tmp.mm|grep OBJ
#define __OBJC__ 1
#define OBJC_NEW_PROPERTIES 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...