C++ 无法使用MinGW构建wxMSW-2.8.12

C++ 无法使用MinGW构建wxMSW-2.8.12,c++,mingw,wxwidgets,mingw32,C++,Mingw,Wxwidgets,Mingw32,我已经尝试了gcc的两个不同版本(4.6和4.7),包括 make -f makefile.gcc USE_OPENGL=1 BUILD=debug SHARED=0 RUNTIME_LIBS=static UNICODE=1 make -f makefile.gcc MONOLITHIC=1 BUILD=debug SHARED=0 UNICODE=1 make -f makefile.gcc USE_OPENGL=1 BUILD=debug UNICODE=1 这就是错误所在 ../../

我已经尝试了gcc的两个不同版本(4.6和4.7),包括

make -f makefile.gcc USE_OPENGL=1 BUILD=debug SHARED=0 RUNTIME_LIBS=static UNICODE=1
make -f makefile.gcc MONOLITHIC=1 BUILD=debug SHARED=0 UNICODE=1
make -f makefile.gcc USE_OPENGL=1 BUILD=debug UNICODE=1
这就是错误所在

../../src/msw/thread.cpp:525: error: cast from 'void*' to 'THREAD_RETVAL' loses precision
../../src/msw/thread.cpp: In member function 'wxThreadError wxThreadInternal::WaitForTerminate(wxCriticalSection&, void**, wxThread*)':
../../src/msw/thread.cpp:845: error: cast from 'void*' to 'DWORD' loses precision
../../src/msw/thread.cpp: In member function 'void wxThread::Exit(void*)':
../../src/msw/thread.cpp:1165: error: cast from 'void*' to 'unsigned int' loses precision
我的平台是Windows 7 64位,但我没有尝试构建64位库(无论如何也不是故意的)

我做错了什么?

DWORD是32位值,而在64位体系结构上,指针是64位值。代码应该使用DWORD_PTR,它在x86_64上定义为64位,在x86上定义为32位。
可能您应该将其构建为32位应用程序,并避免尝试将其构建为本机64位应用程序。

尝试使用MinGW-w64构建wxWidgets时会发生错误。在我的例子中,问题的根源是我安装了草莓Perl 5.14.2.1(64位),但我没有意识到这一点
perl安装了一个gcc编译器,它在路径中。

问题是…?@hochl问题是我做得不对的原因是什么,即是什么导致了错误?我当然在尝试构建一个32位库,但您的观察结果似乎与我在研究此错误时看到的其他报告有些一致。用户在尝试使用MinGW-w64时会遇到这种情况,但我的版本显然是32位的