繁体   English   中英

跨平台的宏定义

[英]Macro definition in cross-platform

在开发各种平台(Android,iPhone,Mac,Windows等)时,必须根据平台定义进行不同的处理(#ifdef /#endif)。 但是,我不知道Mac / iPhone / Android中的原始定义。

Windows:WIN32(Visual C ++)

Mac:__ MAC_NA(?)(XCode)

iPhone / iPad / iPod:__IPHONE_NA(?)(XCode)

Android:?? (AndroidNDK)

我应该按什么定义划分?

对于iPhone,我相信定义是TARGET_OS_IPHONE,对于Android,则定义为ANDROID。 我不太熟悉Apple特有的东西,但是四处寻找之后,我发现这里列出了大量的OS定义清单。 在SO上还有另一个答案,其中有一种可以将定义拉出的方法,请参见此处

您总是可以为您的项目做些补充,从而使自己摆脱编译器/平台特定的defines

  • Android: #define PLATFORM_ANDROID
  • iPhone: #define PLATFORM_IPHONE
  • 等等

并且所有版本都包含一个配置文件,该文件定义了给定项目中的这些宏之一,并且应该在整个系统中正常工作。 如果您使用的是Visual Studio,则只需在“项目设置”中定义它们,甚至不需要配置文件。

Android NDK使用定义ANDROID。

暂无
暂无

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

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