C: информация компилятора во время выполнения - PullRequest
8 голосов
/ 09 июля 2010

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

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

Ответы [ 2 ]

9 голосов
/ 09 июля 2010

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

Ссылка: 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
4 голосов
/ 09 июля 2010

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

gcc предоставляет макрос __VERSION__, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...