Lo predefinido macro que puede utilizar para detectar sonido metálico?
-
27-09-2019 - |
Pregunta
Estoy intentando detectar el compilador utilizado para compilar el código fuente. Fácilmente puede encontrar macros predefinidas para comprobar si hay MSVC o GCC (ver http://predef.sourceforge.net/ por ejemplo), pero no puedo encontrar ninguna macro para comprobar si hay ruido metálico.
¿Alguien sabe si sonido metálico define una macro como __CLANG__
con el fin de saber lo que está recopilando actualmente mi código?
Solución 2
Encontrados la respuesta usando strings
+ grep
:
$ strings /usr/bin/clang | grep __ | grep -i clang
__clang__
Otros consejos
Para obtener una lista de todas las macros predefinidas que utiliza el compilador, utilizan este:
clang -dM -E -x c /dev/null
Se puede hacer lo mismo para gcc.
Esta pregunta ha sido contestada por años, pero permítanme añadir (para referencia futura) cómo se hace en Windows
echo | clang -dM -E -
mismo que para GCC:
echo | gcc -dM -E -
Por favor nota: El último -
guión es realmente importante! (De lo contrario se obtiene error: no input files
tanto para los compiladores)