我一直在使用qt creator,最近尝试将编译器从gcc更改为clang。因为我没有得到任何信息(或者看不到它)是否有效(我正在努力理解界面)我想问一下我的c ++代码是否有办法打印出编译器,被编译。
答案 0 :(得分:3)
编译器设置某些#define
来帮助解决这个问题。
在你的情况下,
#ifdef __GNUC__ //GCC
//do whatever GCC-specific stuff you need to do here
#endif
#ifdef __clang__ //clang
//do whatever clang-specific stuff you need to do here
#endif
This page on SourceForge显示了此类特定于编译器的#define
值的列表。
编辑:正如评论中所指出的,clang集__GNUC__
,可能还有__GNUC_MINOR__
和__GNUC_PATCHLEVEL__
。你可能最好使用双重测试来确保clang不会误导你:
#if defined(__GNUC__) && !defined(__clang__)
//do whatever GCC-specific stuff you need to do here
#endif
答案 1 :(得分:1)
使用informational macros of boost。
#include <boost/config.hpp>
#ifdef BOOST_CLANG
printf("Successfully changed to clang\n");
#endif