我尝试编译wxWidgets已经有一段时间了,我一直在使用TDM-GCC,并且一直在跟踪指南这里而没有这样的运气。我的mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release MONOLITHIC=1的最后几行是
../../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有人有什么想法吗?请帮帮忙,我真的很困惑。
发布于 2013-10-18 18:33:08
在@ravenspoint和一些googling的帮助下,我找到了这,其中提到了将变量CXXFLAGS传递给g++ (对于gcc,使用CFLAGS),然后从@拉文斯宾特的回答中,我将CXXFLAGS+=-fpermissive添加到我的mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release MONOLITHIC=1中,将-fpermissive传递给g++。
发布于 2015-04-28 16:00:05
{aka void*}到unsigned int失去了精度[-fpermissive]
当它期望32位并得到64位时就会发生这种情况,通常在编译代码时会出现问题,在TDM默认的-m64位模式下编译代码是32位。
要使void*失去精度,它必须是64位变量,unsigned int必须是32位变量。
如果通过禁用警告并在64位计算机上运行该变量来降级该变量,则在运行程序时可能会出现指针错误崩溃。
https://stackoverflow.com/questions/19433300
复制相似问题