如何通过 Xcode 在C++库中使用__IPHONE_4_0定义

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

本文关键字:IPHONE 定义 Xcode 何通过 C++      更新时间:2023-10-16

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

#ifdef _IPHONE_4_0    #warning "包括 iPhone SDK 4.0 在这里工作"//编译警告处于活动状态    #include     #include     #include     #include     ...#elif __ANDROID_API_//安卓    #warning "包括在这里工作的安卓"//编译警告未激活        ...#endif

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

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

提前感谢!

查看这篇文章 如何可靠地检测 Mac OS X、iOS、Linux、Windows in C 预处理器?

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

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