preprocesamiento preprocesador funcion ejecutar directivas compilar compilador c macos c-preprocessor conditional-compilation

funcion - ¿Qué condicional del preprocesador C debería usar para el código específico de OS X?



funcion preprocesador en c++ (6)

Este ejemplo de código puede ayudarte

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

¿Qué condicional del preprocesador C debería usar para el código específico de OS X? Necesito incluir una biblioteca específica si estoy compilando para OS X o un encabezado diferente si estoy compilando para Linux.

Sé que hay __APPLE__ pero no sé si esa es una condición actual para OS X 10.x.


Si recuerdo correctamente, es __APPLE__ :)


viejo estilo crudo

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



Esta página contiene una lista de todas las macros predefinidas de SO.

Para mac OSX, tanto el __APPLE__ && __MACH__ deben definirse.


__APPLE__ le dirá que está compilando en una plataforma Apple. A menos que necesite soportar las versiones de MacOS antes de OS X, eso debería ser lo suficientemente bueno. Alternativamente, puedes usar __APPLE__ y __MACH__ para asegurarte de que estás compilando en OS X.