繁体   English   中英

如何在带有Xcode的C ++库中使用__IPHONE_4_0定义?

[英]How to use __IPHONE_4_0 definition in a C++ library with Xcode?

我正在尝试为iOS应用程序开发C ++库。 该库加载GLES和OpenAL函数。 我们的想法是用C ++开发一个库,并在iOS和Android中使用相同的代码(两者都是本机编译)。 我只使用iOS实现,并且我已经使用库完成了一个示例应用程序,我在库中有这个块:

#ifdef _IPHONE_4_0

    #warning "Including iPhone SDK 4.0 working here"     // compiling warning is actived

    #include    <OpenGLES/ES2/gl.h>
    #include    <OpenGLES/ES2/glext.h>

    #include    <OpenAL/al.h>
    #include    <OpenAL/alc.h>

    ...

#elif __ANDROID_API_ // Android

    #warning "Including Android working here"   // Compiling warning is not actived
        ...

#endif

所以,问题来自句子“#ifdef _IPHONE_4_0”。 如果我使用它,Xcode找不到包含文件,但如果我评论所有if clausule(android部分也是如此),Xcode可以找到所有这些。

#warning句子显示编译器正在编译时读取iphone部分(带或不带行注释)。 我是否需要以其他方式使用该定义?

提前致谢!

查看此文章如何在C预处理器中可靠地检测Mac OS X,iOS,Linux,Windows?

另外,据我所知,__ IPHONE_4_0宏仅在iOS 4.0 SDK中定义。 因此,如果您使用的是其他版本的SDK,则代码不起作用。

另一种方法是在Xcode项目构建设置('预处理器宏'字段)中定义自己的宏,并将其命名为IOS_BUILD。 它将同时提供 - objective-c和c ++代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM