Ответ 1
В этом списке макросов операционной системы указано, что наличие и __APPLE__
и __MACH__
указывает OSX.
Также подтверждено в строке 18 части источник для fdisk
.
Какой условный препроцессор C следует использовать для конкретного кода OS X? Мне нужно включить определенную библиотеку, если я компилирую для OS X или другой заголовок, если я компилирую для Linux.
Я знаю, что есть __APPLE__
, но я не знаю, является ли это текущим условием для OS X 10.x.
В этом списке макросов операционной системы указано, что наличие и __APPLE__
и __MACH__
указывает OSX.
Также подтверждено в строке 18 части источник для fdisk
.
__APPLE__
расскажет, что вы компилируете на платформе Apple. Если вам не нужно поддерживать версии MacOS до OS X, это должно быть достаточно хорошим. В качестве альтернативы вы можете использовать __APPLE__
и __MACH__
, чтобы убедиться, что вы компилируете на OS X.
Если я правильно помню, он __APPLE__
:)
Этот пример кода может помочь вам -
if defined(__APPLE__)
#include "TargetConditionals.h"
if (!defined(TARGET_OS_IPHONE) && !defined(TARGET_IPHONE_SIMULATOR))
{
//write your OSX specific code here
}
старый стиль raw:
#ifdef WIN32
// windows.
#elif __APPLE__
// osx and ios.
#endif
Эта страница содержит список всех предопределенных макросов ОС.
Для Mac OSX оба __APPLE__
&& __MACH__
необходимо определить.