Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C: Compiler info at runtime

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);

?

like image 548
Suugaku Avatar asked Jul 09 '10 11:07

Suugaku


2 Answers

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
like image 145
Vitor Py Avatar answered Oct 20 '22 03:10

Vitor Py


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

gcc provides the __VERSION__ macro, though.

like image 38
Borealid Avatar answered Oct 20 '22 02:10

Borealid