MinGW-w64如何编译32位程序

ZChameleon 2015-11-29 07:12:42
安装的平台是这个:
[x86_64-5.2.0-win32-seh-rt_v4-rev0]

加了-m32参数的结果:


请问这是什么问题?
...全文
6211 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liups 2019-11-25
  • 打赏
  • 举报
回复
引用 6 楼 早打大打打核战争 的回复:
TDM GCC 5.1,基于MinGW-w64的版本,没有楼主说的问题。
谢谢分享,我也碰到同样的问题!
赵4老师 2018-04-11
  • 打赏
  • 举报
回复
引用 4 楼 Alisebeast 的回复:
我也遇到了这个问题... 我又装了 32 位的,平时切换32位和64位都要修改path,非常蛋疼...
使用批处理(Linux:.sh/Windows:.bat)是早晚要学会的技能。
笑脸码 2018-04-11
  • 打赏
  • 举报
回复
引用 6 楼 DelphiGuy 的回复:
TDM GCC 5.1,基于MinGW-w64的版本,没有楼主说的问题。
非常感谢!这个解决了我的问题,唯一的缺点就是 gcc 更新速度有点慢... (mingw-w64 的 gcc 已经是 7.x 版本了,tdm gcc 还是 5.x 的版本)
  • 打赏
  • 举报
回复
TDM GCC 5.1,基于MinGW-w64的版本,没有楼主说的问题。
笑脸码 2018-04-10
  • 打赏
  • 举报
回复
我也遇到了这个问题... 我又装了 32 位的,平时切换32位和64位都要修改path,非常蛋疼...
赵4老师 2016-09-07
  • 打赏
  • 举报
回复
19690504,那时我不到一岁。Orz
hijack00 2016-09-07
  • 打赏
  • 举报
回复
以前看到过类似的帖子,大意是gcc使用-m32或者-m64选项可以构建32位或者64位程序,但是需要本机安装了对应的库文件。例如,要让-m32有效,必须要有对应32位的库文件,否则就会出错。我在mingw上使用-m32时也没有成功,但我在CentOS6.5 64bit服务器上使用-m32时成功了,可能后者把32位和64位的库都装齐了。
hsbf2008 2016-09-06
  • 打赏
  • 举报
回复 1
我去,我和你的问题一模一样!!! 我在google上搜到了答案。 http://stackoverflow.com/questions/19690504/how-do-i-compile-and-link-a-32-bit-windows-executable-using-mingw-w64 That depends on which variant of toolchain you're currently using. Both DWARF and SEH variants (which come starting from GCC 4.8.0) are only single-target. You can see it yourself by inspecting the directory structure of their distributions, i.e. they contain only the libraries with either 64- and 32-bit addressing, but not both. On the other hand, plain old SJLJ distributions are indeed dual-target, and in order to build 32-bit target, just supply -m32 flag. If that doesn't work, then just build with i686-w64-mingw32-g++. 也就是说mingw-w64不是有很多分支吗?就是那个异常实现方式不同。 但是SEH和DWARF都是只有一个平台的(只有x32或者只有x64),坑。。。 他说老式的SJLJ方式有两个平台的,这个时候可以用-m32来就可以了。 如果还不行,就只能用mingw32来编译了。。。

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧