instalar - ¿Macros para GCC/G++ para diferenciar Linux y Mac OSX?
gcc for windows 7 (4)
¿Macros para GCC / G ++ para diferenciar Linux y Mac OSX?
Detecta OSX con la macro __APPLE__
si es necesario. Es mejor usar configure
para detectar funciones si puede, pero no todo funciona bien de esa manera.
Estaría más inclinado a probar la disponibilidad de funciones que el nombre de la plataforma. Intenta usar autoconf .
De lo contrario, esta es una lista completa de plataformas definidas .
Consulte también esta página para obtener información sobre compiladores, bibliotecas, arquitecturas y dispositivos.
Yo uso __MACH__
para probar Mac OS X - no es 100% exclusivo para Mac OS X (aún puede haber algunas cajas NeXT viejas por ahí!) Pero es lo suficientemente bueno para decir la diferencia entre Mac y Linux.
La próxima vez que desee verificar las macros predefinidas soportadas por GCC en una plataforma, ejecute el preprocesador con la bandera -dM
. Enumerará todas las macros predefinidas disponibles en el sistema. Por ejemplo:
$ touch dummy.hxx
$ cpp -dM ./dummy.hxx
#define __DBL_MIN_EXP__ (-1021)
#define __FLT_MIN__ 1.17549435e-38F
#define __CHAR_BIT__ 8
#define __WCHAR_MAX__ 2147483647
#define __DBL_DENORM_MIN__ 4.9406564584124654e-324
#define __FLT_EVAL_METHOD__ 0
#define __DBL_MIN_10_EXP__ (-307)
#define __FINITE_MATH_ONLY__ 0
#define __SHRT_MAX__ 32767
#define __LDBL_MAX__ 1.18973149535723176502e+4932L
#define __UINTMAX_TYPE__ long unsigned int
#define __linux 1
#define __unix 1
#define __linux__ 1
...