如何在C++预处理器中检测g++和MinGW?

vshtjzan  于 2023-04-01  发布在  其他
关注(0)|答案(2)|浏览(155)

我想做一些类似的事情:

#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif

因为我想使用__PRETTY_FUNCTION__,据我所知只有GNU支持,所以我需要检测我是否在为g++和MinGW编译,我该怎么做?我猜我需要知道的只是编译器的预处理器定义,就像我为微软所做的那样:

#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin( __FUNCTION__ );
#define LogFuncEndSuccess() gLogger.FuncEndSuccess( __FUNCTION__ );
#endif

如何在C预处理器中检测g和MinGW?

gmxoilav

gmxoilav1#

您可以使用:

#ifdef __GNUC__
#ifdef __MINGW32__

对于其他宏,您可能会对this page感兴趣,它显示了其他编译器宏。

9cbw7uwe

9cbw7uwe2#

对于GCC:

#ifdef __GNUC__

对于MinGW:

#ifdef __MINGW32__

x86_64-w 64-mingw 32-gcc定义了__MINGW32____MINGW64__

相关问题