是否有用于检测OS X版本的预定义C宏?我知道__APPLE__
和__MACH__
存在,但那些是二进制的。 __APPLE_CC__
是否有特定值表示狮子?
特别是,Lion在Lion中添加了getline()
到<stdio.h>
的定义,能够检测代码是否在Lion上进行编译以及是否可以解决编译错误会很好。
具体来说,我指的是在Bash中构建Unix C代码(在XCode之外)。
答案 0 :(得分:7)
Availability.h
宏允许您检查编译和运行时版本依赖性。请参阅讨论here。
答案 1 :(得分:4)
签入/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
会得到很多警告。