Есть ли способ напечатать имя компилятора и версию, которая использовалась для компиляции программы, что-то вроде;
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__, хотя.
__VERSION__