使用TDM-GCC编译wxWidgets时出错
问题描述:
我一直在尝试编译wxWidgets一段时间,现在我一直在使用TDM-GCC并且一直遵循指南here而没有这样的运气。我的mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release MONOLITHIC=1
的最后几行是使用TDM-GCC编译wxWidgets时出错
../../src/msw/thread.cpp: In member function 'void wxThread::Exit(wxThread::Exit
Code)':
../../src/msw/thread.cpp:1165:28: error: cast from 'wxThread::ExitCode {aka void
*}' to 'unsigned int' loses precision [-fpermissive]
_endthreadex((unsigned)status);
makefile.gcc:4957: recipe for target 'gcc_mswudll\monodll_thread.o' failed
mingw32-make: *** [gcc_mswudll\monodll_thread.o] Error 1
任何人有任何想法?请帮忙,我真的很困惑。
答
随着@ravenspoint的帮助下,和一些google搜索,我发现this,其中提到传递变量CXXFLAGS
传递参数给G ++(和GCC,使用CFLAGS
),然后从@ ravenspoint的回答我说CXXFLAGS+=-fpermissive
我mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release MONOLITHIC=1
,将-fpermissive
传递给g ++。
答
{aka void*}
到unsigned int
损失精度[-fpermissive]
即当它期望的32位,并得到一个64位,通常在编译意味着是在TDM默认-m64位模式的32位代码中的问题发生。
对于void*
失去精度,它必须是一个64位的变量,unsigned int
必须是32
如果您通过禁用警告降级变位和64位的机器上运行它,你可以得到一个指针运行程序时出现错误崩溃。
没有足够的信息,您忽略了包含实际错误的行。 –
将错误降级为警告。 看到这个答案http://*.com/a/8843848/16582 – ravenspoint
对不起,我必须健全** **真的很笨,但我如何才能'的mingw32-make'通过这个选项,GCC? –