我正在尝试为 iOS 应用程序开发 C++ 库。该库加载 GLES 和 OpenAL 函数。这个想法是用 C++ 开发一个库,并在 iOS 和 Android 中使用相同的代码(都作为本机编译)。我只使用 iOS 实现,并且我已经使用库完成了一个示例应用程序,并且我在库中有这个块:
#ifdef _IPHONE_4_0 #warning "Including iPhone SDK 4.0 working here" // 编译警告被激活 #include <OpenGLES/ES2/gl.h> #include <OpenGLES/ES2/gext.h> #include <OpenAL/al.h> #include <OpenAL/alc.h> ... #elif __ANDROID_API_ // 安卓 #warning "Including Android working here" // 编译警告未激活 ... #万一
所以,问题出在“#ifdef _IPHONE_4_0”这句话上。如果我使用它,Xcode 找不到包含文件,但如果我评论所有if clausule(android 部分),Xcode 可以找到所有这些文件。
#warning语句显示编译器在编译时正在读取 iphone 部分(有和没有注释的行)。我是否需要以其他方式使用该定义?
提前致谢!