Есть ли способ распечатать название компилятора и версии, которая использовалась для компиляции программы, чего-то как;
printf("This is compiled with %s version %s\n", COMPILER, COMPILER_VERSION);
?
Это можно сделать с помощью препроцессора:
Ссылка: http://predef.sourceforge.net/precomp.html
Для 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
Для MSVC просто используйте:
_MSC_FULL_VER
Нет, способ получения имени компилятора сам зависит от компилятора :-P. Однако
gcc предоставляет макрос __ VERSION __
.