Подтвердить что ты не робот

Какой условный препроцессор C следует использовать для конкретного кода OS X?

Какой условный препроцессор C следует использовать для конкретного кода OS X? Мне нужно включить определенную библиотеку, если я компилирую для OS X или другой заголовок, если я компилирую для Linux.

Я знаю, что есть __APPLE__, но я не знаю, является ли это текущим условием для OS X 10.x.

4b9b3361

Ответ 2

__APPLE__ расскажет, что вы компилируете на платформе Apple. Если вам не нужно поддерживать версии MacOS до OS X, это должно быть достаточно хорошим. В качестве альтернативы вы можете использовать __APPLE__ и __MACH__, чтобы убедиться, что вы компилируете на OS X.

Ответ 3

Если я правильно помню, он __APPLE__:)

Ответ 4

Этот пример кода может помочь вам -

if defined(__APPLE__)
#include "TargetConditionals.h"
  if (!defined(TARGET_OS_IPHONE) && !defined(TARGET_IPHONE_SIMULATOR))
 {
   //write your OSX specific code here
 } 

Ответ 5

старый стиль raw:

#ifdef WIN32
// windows.
#elif __APPLE__
// osx and ios.
#endif

Ответ 6

Эта страница содержит список всех предопределенных макросов ОС.

Для Mac OSX оба __APPLE__ && __MACH__ необходимо определить.