首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用TDM-GCC编译wxWidgets时出错

用TDM-GCC编译wxWidgets时出错
EN

Stack Overflow用户
提问于 2013-10-17 17:23:21
回答 2查看 1.7K关注 0票数 0

我尝试编译wxWidgets已经有一段时间了,我一直在使用TDM-GCC,并且一直在跟踪指南这里而没有这样的运气。我的mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release MONOLITHIC=1的最后几行是

代码语言:javascript
复制
../../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

有人有什么想法吗?请帮帮忙,我真的很困惑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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++。

票数 2
EN

Stack Overflow用户

发布于 2015-04-28 16:00:05

{aka void*}unsigned int失去了精度[-fpermissive]

当它期望32位并得到64位时就会发生这种情况,通常在编译代码时会出现问题,在TDM默认的-m64位模式下编译代码是32位。

要使void*失去精度,它必须是64位变量,unsigned int必须是32位变量。

如果通过禁用警告并在64位计算机上运行该变量来降级该变量,则在运行程序时可能会出现指针错误崩溃。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19433300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档