gpt4 book ai didi

c++ - 如何使用 Xcode 在 C++ 库中使用 __IPHONE_4_0 定义?

转载 作者:太空狗 更新时间:2023-10-29 23:08:04 34 4
gpt4 key购买 nike

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

#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 子句(也是 android 部分)Xcode 可以找到所有这些文件。

#warning 语句表明编译器正在编译时读取 iphone 部分(有和没有注释行)。我需要以其他方式使用该定义吗?

提前致谢!

最佳答案

查看此帖子 How to detect reliably Mac OS X, iOS, Linux, Windows in C preprocessor?

此外,据我所知,__IPHONE_4_0 宏仅在 iOS 4.0 SDK 中定义。因此,如果您使用的是其他版本的 SDK,该代码将无法运行。

另一种方法是在 Xcode 项目build设置(“预处理器宏”字段)中定义您自己的宏,并将其命名为 IOS_BUILD,例如。它将在 objective-c 和 c++ 代码中可用

关于c++ - 如何使用 Xcode 在 C++ 库中使用 __IPHONE_4_0 定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683777/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com