我正在为iPhone应用程序编译.mm文件(Objective-C ++),并且预编译的头文件无法包含基类。
我将其追踪到以下内容:
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#endif
事实证明,__OBJC__
未定义mm文件,而是为标准m文件定义。
我可以使用其他任何标志吗?
答案 0 :(得分:2)
如果您使用-dM -E
调用gcc,它将在预处理后停止,并列出所有#defines
。这通常是我如何检查内置定义的设置;但是我只是尝试了一个测试.mm
文件并为我定义了__OBJC__
,所以我不确定为什么没有为你定义。
$ echo "int foo() {};" > tmp.mm
$ gcc -dM -E tmp.mm|grep OBJ
#define __OBJC__ 1
#define OBJC_NEW_PROPERTIES 1