2009-07-17 30 views
2

我正在編譯iPhone應用程序的.mm文件(Objective-C++),並且預編譯頭文件未能包含基類。__OBJC__相當於Objective-C++

我跟蹤它到下面:

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

原來,__OBJC__是未定義毫米的文件,而它是爲標準米文件中定義。

是否有其他的標誌可以使用?

回答

2

如果您調用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