C: Информация о компиляторе во времени выполнения

Есть ли способ распечатать название компилятора и версии, которая использовалась для компиляции программы, чего-то как;

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

?

8
задан Suugaku 9 July 2010 в 11:32
поделиться

2 ответа

Это можно сделать с помощью препроцессора:

Ссылка: 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
9
ответ дан 5 December 2019 в 12:54
поделиться

Нет, способ получения имени компилятора сам зависит от компилятора :-P. Однако

gcc предоставляет макрос __ VERSION __ .

4
ответ дан 5 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: