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
会得到很多警告。