Я компилирую условно:
#ifdef WIN32 myVal = "Windows"; #elif __APPLE__ myVal = "Apple"; #endif
Есть ли значение, которое я могу проверить в блоке __APPLE__ для проверки различных версий (10.4,10.5,10.6 и т. Д.)?
__APPLE__
Если вы пытаетесь проверить среду компилятора, попробуйте uname -v.
uname -v
В частности, я думаю, вы можете сделать uname -v | sed 's/Darwin Kernel Version \([^ ]*\):.*/\1/', чтобы получить, например, "10.5".
uname -v | sed 's/Darwin Kernel Version \([^ ]*\):.*/\1/'
Вы должны использовать макросы /usr/include/AvailabilityMacros.h.См. TN2064 для обсуждения, а также комментарии заголовка в этом файле.
/usr/include/AvailabilityMacros.h