你肯定有什麼取消定義WIN32
?我MinGW的安裝(4.6.1在本網站)明確定義它:
C:\temp>gcc -E -dM test.c | find /i "win"
#define _WIN32 1
#define __WINT_MAX__ 65535
#define _WINT_T
#define __WINT_MIN__ 0
#define __WIN32 1
#define __WINNT 1
#define __WINNT__ 1
#define __WIN32__ 1
#define __SIZEOF_WINT_T__ 2
#define WIN32 1 // <-- right here
#define __WINT_TYPE__ short unsigned int
#define WINNT 1
嘗試傳遞-E -dM
選項,以驗證您的MinGW的編譯器(或者不是)預先定義WIN32
宏。
注意,嚴格地說,應該WIN32
不通過編譯器是預定義的(因爲它是在用戶的命名空間) - 僅_WIN32
應該。 WIN32
應該由正在使用的SDK和/或構建環境設置 - 這是它在Microsoft編譯器中的工作方式。
例如,有一個在windef.h
以下順序「
#ifndef WIN32
#define WIN32
#endif
和/D "WIN32"
投入的Visual Studio C++默認的項目。
更多細節請https://stackoverflow.com/a/662543/12711。
」您的項目「 ?確保WIN32被定義,''需要cygwin,而不僅僅是mingw32。 –
John
@John對不起,'一個項目'你是什麼意思'確保WIN32被定義?' – liamzebedee
什麼MinGW的rsion是否在使用?什麼是調用編譯器的命令行? –