I'm trying to detect the compiler used to compile my source code. I can easily find predefined macros to check for MSVC or GCC (see http://predef.sourceforge.net/ for example), but I cannot find any macro to check for clang.
Does someone know if clang defines a macro like __CLANG__
in order to know what is currently compiling my code ?
Found the answer using
strings
+grep
:To get a list of all the predefined macros that the compiler uses, use this:
You can do the same for gcc.
This question has been answered for years but let me add (for future reference) how it is done in Windows:
same as for GCC:
Please note: The last dash
-
is actually important! (Otherwise you geterror: no input files
for both compilers)