Die Frage ist ziemlich klar, denke ich. Ich versuche, einen Compiler-Erkennungsheader zu schreiben, um in der Anwendung Informationen darüber einfügen zu können, welcher Compiler verwendet wurde und welche Version.Wie erkennen LLVM und seine Version über # define-Direktiven?
Dieser Teil des Codes Ich verwende:
/* 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
, die wie folgt verwendet werden:
printf(" Compiled using " COMPILER "\n", COMP_VERSION);
Gibt es eine Möglichkeit LLVM und seine Version zu erkennen? Und CLANG?
große Frage, kann ich keine doco an auf ihm finden alle –
Sie müssen manchmal wissen, ob Clang Integrated Assembler verwendet wird, auch. Der Anwendungsfall ist ein moderner GCC, und der Compiler verwendet Clang als Assembler und nicht ein altes GAS, um AESNI, AVX, BMI usw. zu assemblieren. Sie verwenden den Integrated Assembler, weil AS und LD von Apple zu alt sind, um die von der Front produzierte Baugruppe zu verbrauchen -Ende. – jww