OS X版本(Lion或不是)检测的C宏?

是否有预定义的C宏来检测OS X的版本? 我知道__MACH____MACH__存在,但那些是二进制的。 是否有__APPLE_CC__的特定值表示狮子?

特别是,Lion在Lion中将getline()的定义添加到中,能够检测代码是否在Lion上进行编译以及解决编译错误是很好的。

具体来说,我指的是在Bash(XCode之外)中构建Unix C代码。

Availability.h宏允许您检查编译和运行时版本依赖性。 请参阅此处的讨论。

检入/usr/include/AvailabilityMacros.h – 它包含宏,例如:

 #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7 #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER DEPRECATED_ATTRIBUTE #else #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER #endif 

我遇到过这些东西,因为’openssl / sha1.h’已经被Lion的’deprecated’属性搞砸了,所以编译git会得到很多警告。