8

Is there a way to print the name of the compiler and the version that was used to compile a program, something like;

printf("This is compiled with %s version %s\n", COMPILER, COMPILER_VERSION);

?

Suugaku
  • 2,667
  • 5
  • 31
  • 33

2 Answers2

9

You can do this with the pre-processor:

Reference: http://predef.sourceforge.net/precomp.html

For gcc:

#if defined(__GNUC__)
# if defined(__GNUC_PATCHLEVEL__)
#  define __GNUC_VERSION__ (__GNUC__ * 10000 \
                            + __GNUC_MINOR__ * 100 \
                            + __GNUC_PATCHLEVEL__)
# else
#  define __GNUC_VERSION__ (__GNUC__ * 10000 \
                            + __GNUC_MINOR__ * 100)
# endif
#endif

For MSVC just use:

_MSC_FULL_VER
Vitor Py
  • 5,145
  • 4
  • 39
  • 62
4

No, the way to get the name of the compiler is itself compiler-specific :-P.

gcc provides the __VERSION__ macro, though.

Borealid
  • 95,191
  • 9
  • 106
  • 122