繁体   English   中英

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

[英]How can I detect g++ and MinGW in C++ preprocessor?

我想做的事情如下:

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

由于我想使用漂亮的PRETTY_FUNCTION ,据我所知只有gnu支持所以我需要检测我是否正在编译g ++和MinGW,我该怎么做? 我猜我需要知道的是编译器的预处理器定义,就像我在下面为Microsoft做的那样。

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

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

你可以利用:

#ifdef __GNUC__
#ifdef __MINGW32__

对于其他宏,您可能会对显示其他编译器宏的页面感兴趣

对于GCC:

#ifdef __GNUC__

对于MinGW:

#ifdef __MINGW32__

x86_64-w64-mingw32-gcc定义了__MINGW32____MINGW64__

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM