有没有办法打印编译器的名称和用于编译程序的版本,如:
printf("This is compiled with %s version %s\n", COMPILER, COMPILER_VERSION);
答案 0 :(得分:9)
您可以使用预处理器执行此操作:
参考: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
答案 1 :(得分:4)
不,获取编译器名称的方法本身就是编译器特定的:-P。
不过, gcc提供了__VERSION__
宏。