Estoy tratando de detectar el compilador utilizado para compilar mi código fuente. Puedo encontrar fácilmente macros predefinidas para buscar MSVC o GCC (ver http://predef.sourceforge.net/ por ejemplo), pero no puedo encontrar ninguna macro para verificar si hay clang.
¿Alguien sabe si clang define una macro como __CLANG__
para saber qué está compilando actualmente mi código?
c
macros
clang
c-preprocessor
Pierre Bourdon
fuente
fuente
Respuestas:
Para obtener una lista de todas las macros predefinidas que usa el compilador, use esto:
Puedes hacer lo mismo con gcc.
fuente
Encontré la respuesta usando
strings
+grep
:fuente
Esta pregunta ha sido respondida durante años, pero permítame agregar (para referencia futura) cómo se hace en Windows :
lo mismo que para GCC:
Tenga en cuenta: ¡El último guión
-
es realmente importante! (De lo contrario, obtieneserror: no input files
para ambos compiladores)fuente
/dev/null
esNUL:
/dev/null
es más trabajo.