MinGW-w64如何编译32位程序

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

加了-m32参数的结果:


请问这是什么问题?
...全文
6486 8 打赏 收藏 转发到动态 举报
写回复
用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来编译了。。。
MingW-w64 是一款专为 Windows 平台设计的开源 GCC(GNU Compiler Collection)工具链,它能够编译 C、C++ 等多种语言,帮助开发者在 Windows 系统上开发原生 Windows 应用程序。其安装程序 mingw-w64-install.exe 可以让用户轻松配置和安装开发环境。在 C++ 开发中,MingW-w64 提供了以下重要组件和功能: GCC 编译器:作为 GNU 项目的核心部分,GCC 支持多种语言,包括 C、C++、Objective-C、Fortran、Ada 和 Go。对于 C++ 开发,它具备良好的标准符合性和优化能力,支持 C++11 及更高版本的特性。 Win32 API 支持:MingW-w64 提供了 Win32 API 的头文件和库,使开发者能够调用 Windows 系统功能,如窗口管理、进程和线程控制以及文件操作等。 交叉编译功能:MingW-w64 支持 32 位和 64 位 Windows 平台的交叉编译,允许在一种架构的开发环境中编译出可在另一种架构上运行的程序。 GDB 调试器:作为工具集的一部分,GDB 是一个强大的源代码级调试器,可用于查找和修复程序错误。 Make 工具:MingW-w64 包含 GNU Make,这是一个自动化构建工具,可通过编写 Makefile 来管理项目编译过程。 安装程序mingw-w64-install.exe 是 MingW-w64 的一键安装程序,用户可以通过它选择安装所需的组件,如特定版本的 GCC、调试工具和其他开发库,从而快速构建个性化开发环境。 安装 MingW-w64 的步骤如下: 下载安装程序:从官方或可信网站获取 mingw-w64-install.exe 文件。 运行安装程序:双击该文件启动安装向导。 选择安装类型:根据需求选择“本地

24,855

社区成员

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

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