可能重复:
使用#ifdef检测编译器
大家好,
我一直在开发一个C++项目,在linux上使用gcc,在windows上使用mingw。现在我想在Windows上使用VC++ cl编译器。 我要保持相同的源代码树,只更改编译器特定的逻辑,例如:
#ifdef VC_CL_COMPILER
//do vc++ related
#elif MINGW_FLAG
//do mingw related
#elseif GCC_FLAG
//do gc related
#endif
有什么建议吗?
编译器通常为此有一个预定义的宏。
#if defined(__GCC__)
//do gcc related
#elif defined(_MSC_VER)
//do msvc related
#else
#endif