2011-04-13 66 views
3

可能重複:
Detect compiler with #ifdef檢查編譯器是gcc/mingw還是VC++ cl的標誌?

大家好,

我一直工作在C++項目在Linux上使用和MinGW GCC上windows.Now我想用Windows上的VC++ cl編譯器。 我是保持相同的源代碼樹只改變像編譯器特定的邏輯:在做這個

#ifdef VC_CL_COMPILER 
//do vc++ related 
#elif MINGW_FLAG 
//do mingw related 
#elseif GCC_FLAG 
    //do gc related  
#endif 

反正提示?

+0

原因重啓:我覺得GCC特別值得一情況下,作爲'__GNUC__'標誌由其他編譯器還定義。參見[這裏](http://sourceforge.net/p/predef/wiki/Compilers/#gcc-cc)。 – Antonio 2016-01-27 10:47:09

回答

10

編譯器通常爲此有一個預定義的宏。

#if defined(__GCC__) 
    //do gcc related 
#elif defined(_MSC_VER) 
    //do msvc related 
#else 

#endif 
+4

Gcc v4.1(可能還有其他的)沒有定義'__GCC__'。 它是'__GNUC__'應該被測試。 – iksess 2014-09-10 15:14:26

相關問題