跨平台的宏定义

时间:2010-07-03 08:58:38

标签: c++ iphone c android macos

在开发各种平台(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)

我应该按什么定义划分?

3 个答案:

答案 0 :(得分:4)

对于iPhone,我认为定义是TARGET_OS_IPHONE,对于Android,它是ANDROID。我不太熟悉特定于Apple的东西,但是经过四处寻找后,我找到了很多操作系统定义here的绝佳列表。这里还有另一个答案,它有一个拉出定义的方法,找到here

答案 1 :(得分:4)

您可以随时为项目做些准备,从而摆脱编译器/平台特定的defines

  • Android:#define PLATFORM_ANDROID
  • Iphone:#define PLATFORM_IPHONE

并且所有构建都包含一个配置文件,该文件在给定项目中定义其中一个宏,并且应该全面工作。如果您使用的是Visual Studio,则只需在“项目设置”中定义它们,甚至无需配置文件。

答案 2 :(得分:2)

Android NDK使用定义ANDROID。