我正在尝试检测用于编译源代码的编译器.我可以很容易地找到预定义的宏来检查MSVC或GCC(例如参见http://predef.sourceforge.net/),但我找不到任何宏来检查clang.
有人知道clang是否定义了一个宏__CLANG__,以便知道当前正在编译我的代码的是什么?
我用于#ifdef Win32安全通话,sprintf_s但现在我想用MinGW建立项目,现在它错了.我需要使用#ifdef VC++或以某种方式.可能吗?
可能重复:
使用#ifdef检测编译器
问候所有,
我一直在研究在Linux上使用gcc和在windows上使用gcc的C++项目.现在我想在Windows上使用VC++ cl编译器.我是保持相同的源代码树只更改编译器特定的逻辑,如:
#ifdef VC_CL_COMPILER
//do vc++ related
#elif MINGW_FLAG
//do mingw related
#elseif GCC_FLAG
//do gc related
#endif
Run Code Online (Sandbox Code Playgroud)
无论如何提示这样做?