#c #macos #gcc
#c #macos #gcc
Вопрос:
Существует ли предопределенная макрокоманда C для определения версии OS X? Я знаю, __APPLE__
и __MACH__
существуют, но они двоичные. Существует ли конкретное значение для __APPLE_CC__
, которое указывает на Lion?
В частности, Lion добавил определение getline()
to <stdio.h>
в Lion, и было бы неплохо иметь возможность определять, компилировался ли код на Lion или нет, чтобы обойти ошибки компиляции.
В частности, я имею в виду создание кода Unix C в Bash (за пределами XCode).
Комментарии:
1. Компиляция или запуск на Lion?
Ответ №1:
Availability.h
Макросы позволяют проверять зависимости версий от компиляции и времени выполнения. Смотрите обсуждение здесь.
Ответ №2:
Проверьте /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
получает множество предупреждений.