我正在使用Xcode中的OpenGLES开发一些东西 - 它主要用于iOS,但我希望只使用OpenGLES部分C ++,因为它不使用ObjectiveC。但是OpenGLES似乎包含了需要Objective-C(Availability.h)的东西,所以CPP文件没有正确编译,因为我从NSObjCRuntime.h收到有关NSString的错误。
我理解他们,但我想知道别人如何解决这个问题。我希望能够将我的C ++文件扩展为CPP。我应该关注Xcode项目中有关如何处理CPP文件的设置吗?
由于
答案 0 :(得分:0)
默认情况下,Xcode应将cpp
个文件视为C ++。确保您没有在某处手动定义的特殊Objective-C定义之一,例如__OBJC__
。至于Availability.h
,具体来说,它不需要Objective-C(它只是预处理器的东西)所以问题可能在其他地方。
我可以在.cpp
文件中使用OpenGL,编译为C ++,就像我在iOS项目中一样。
答案 1 :(得分:0)
您也可能有一个包含Objective C标头的前缀标头。如果是这种情况,您应该使用#ifdef __OBJC__
围绕这些。
答案 2 :(得分:0)
我找到了它 - 最终包含了QuartzCore.h,用于CATransform3D。我忘记了我打算用另一种方法取而代之。