La pregunta es bastante clara, creo. Intento escribir un encabezado de detección de compilador para poder incluir en la información de la aplicación en qué compilador se utilizó y qué versión.Cómo detectar LLVM y su versión a través de las directivas #define?
Esto es parte del código que estoy usando:
/* GNU C Compiler Detection */
#elif defined __GNUC__
#ifdef __MINGW32__
#define COMPILER "MinGW GCC %d.%d.%d"
#else
#define COMPILER "GCC %d.%d.%d"
#endif
#define COMP_VERSION __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__
#endif
que podría ser utilizado como esto:
printf(" Compiled using " COMPILER "\n", COMP_VERSION);
¿Hay alguna manera de detectar LLVM y su versión? Y CLANG?
gran pregunta, no puedo encontrar ninguna mana en él en absoluto –
A veces se necesita saber si se está utilizando de Sonido metálico integrado ensamblador, también. El caso de uso es el GCC moderno, y el compilador usa Clang como ensamblador en lugar de un GAS antiguo para ensamblar AESNI, AVX, BMI, etc. Usas el ensamblador integrado porque el AS y el LD de Apple son demasiado viejos para consumir el ensamblaje producido por el frente -fines – jww