用于检测OS X版本(无论是Lion还是其他版本)的C宏?

7
有没有预定义的C宏来检测OS X的版本?我知道__APPLE____MACH__存在,但这些是二进制的。是否有一个特定的值__APPLE_CC__表示Lion?
特别地,Lion在<stdio.h>中添加了getline()的定义,能否检测代码是否正在Lion上编译,以解决编译错误。
具体而言,我指的是在Bash(XCode之外)中构建Unix C代码。

2
在 Lion 上编译还是运行? - Jonathan Grynspan
2个回答

8
Availability.h 宏允许您检查编译和运行时版本的依赖关系。请参见此处的讨论:这里

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

我发现这个东西是因为在Lion中,'openssl/sha1.h'被涂上了'已弃用'的属性,所以编译git时会出现大量警告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接