移动平台的预处理器定义是什么?

时间:2013-09-07 17:37:00

标签: c++ cross-platform c-preprocessor

我正在编写一个我需要在Windows,Mac,Linux,Android,iOS上运行的库。我已经有了以下定义:

#if defined(_WIN32) || defined(__WIN32__)

    // Windows
    #define SYSTEM_WINDOWS

#elif defined(linux) || defined(__linux)

    // Linux
    #define SYSTEM_LINUX

#elif defined(__APPLE__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)

    // MacOS
    #define SYSTEM_MACOS

#elif defined(__ANDROID__)

    // Android
    #define SYSTEM_ANDROID

#else

    // Unsupported system
    #error This operating system is not supported

#endif

但我不确定iOS的用途。

1 个答案:

答案 0 :(得分:0)

在/usr/include/TargetConditionals.h中,您可以找到TARGET_OS_IPHONE的定义,iOS和iOS模拟器的值均为1。

请参阅以下链接以确定如何检测多个平台的操作系统:

Detecting the OS Using Predefined Macros