簡體   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