在我的项目中,核心库是由C/C++文件组成的,而UI需要用Objective C开发。我能够从Objective C/.mm文件中访问/调用C++函数,但反过来就不行了,也就是说,我无法从C++文件中调用Objective C函数,当我尝试包含Objective C头文件时,甚至包括系统头文件时都不行。
#import <foundation/foundation.h>
我遇到了1000多个编译错误,
就像这样的情况。
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:180:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:180: error: expected unqualified-id before '@' token
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:182:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:182: error: expected initializer before '*' token
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183: error: 'NSString' was not declared in this scope
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183: error: 'aSelectorName' was not declared in this scope
我是否需要添加一些预编译标志等?有没有人可以向我建议,在不太修改 C++ 代码的情况下,最好的方法来调用/访问继承自 NSObject 的 Objective-C 类,我只需要调用一个函数。
头文件的代码结构/包含顺序如下:
Some system header file
Some Core Class Header file
#import <foundation/foundation.h>