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?

¿Fue útil?

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)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top