Макрос C для определения версии OS X (лев или нет)? - PullRequest
7 голосов
/ 06 ноября 2011

Существует ли предопределенный макрос C для определения версии OS X?Я знаю, что __APPLE__ и __MACH__ существуют, но они двоичные.Есть ли конкретное значение для __APPLE_CC__, которое указывает на Lion?

В частности, Lion добавил определение от getline() до <stdio.h> в Lion, и было бы неплохо иметь возможность определять, есть ли кодкомпилировал на Lion или нет, чтобы обойти ошибки компиляции.

В частности, я имею в виду сборку кода Unix C в Bash (вне XCode).

Ответы [ 2 ]

7 голосов
/ 06 ноября 2011

Макросы Availability.h позволяют проверять зависимости версий во время компиляции и во время выполнения. Смотрите обсуждение здесь .

4 голосов
/ 06 ноября 2011

Регистрация /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, поэтому компилируемgit получает предупреждения в изобилии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...