2011-11-06 30 views
5

是否有預定義的C宏用於檢測OS X的版本?我知道__APPLE____MACH__存在,但那些是二元的。 __APPLE_CC__是否有指定Lion的具體值?C宏的OS X版本(獅子或不)檢測?

特別是,Lion在Lion中添加了getline()<stdio.h>的定義,並且能夠檢測代碼是否在Lion上編譯或不處理編譯錯誤會很好。

具體來說,我指的是在Bash(XCode之外)構建Unix C代碼。

+0

*在Lion上編譯*或運行* * –

回答

5

Availability.h宏允許您檢查編譯版和運行時的版本依賴關係。請參閱討論here

3

入住/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」已經厚厚地塗有「不贊成使用」屬性獅子,所以編譯git得到警告嘉豪。