【问题标题】:MinGW64 cannot compile 32bit codeMinGW64 无法编译 32 位代码
【发布时间】:2013-06-25 02:21:26
【问题描述】:

我已经从这个链接x64-4.8.1-posix-sjlj-rev1 下载了 MinGW,但是当我尝试为 x86 目标构建时,我遇到了很多链接错误......似乎只安装了 x64 库......

我需要在 Windows 上为 x86 和 x64 平台构建...我要同时下载 x64 和 x86 还是有一些更简单的方法?

编辑 我正在使用 eclipse keplero 作为 IDE 我尝试用g++ -m32 -std=c++11 test.cpp -o test32.exeg++ -m64 -std=c++11 test.cpp -o test64.exe 为自己构建一个简单的hello world 程序。一切都很好...所以问题出在 eclipse 上...稍微发现我需要使用 MYSY(在 PATH 中设置)并在 c++ 链接选项中也设置 -m32...

现在一切都很好。

我也尝试过使用 NetBeans C++ 作为 IDE...似乎是一个很棒的 IDE!!!

【问题讨论】:

  • 你知道所有要知道的,现在去下载32位版本。
  • 在 linux 上我有 multilib 和其他的 Multilib toolchains 我认为它是“自动的”
  • 然后去找multilib mingw。
  • 好吧,我只能在win32和win64之间选择
  • 你错了,你可以自己构建multilib mingw。

标签: c++11 mingw32 mingw-w64


【解决方案1】:

multilib 未启用。这就是为什么您无法编译 32 位(x86)程序的原因。您可以从以下链接获得multilib 启用的工具链:

对于 64 位机器:64-Bit

对于 32 位机器:32-Bit

【讨论】:

  • 我发现的唯一一个没有启用多库
  • 是的,如果您尝试gcc -v 将在其中显示multilib,这意味着它已启用multilib
  • 我可以看到 --enalbe-multilib=1 但似乎不起作用...我正在使用 eclipse 作为编辑器...我会尝试自己编译
  • 使用命令行它可以工作...与 Eclipse 它不会并给出很多链接错误...我必须更好地调查
  • 尝试从 64 位机器交叉编译你需要将 -m32 传递给 gccgcc -m32 file.c
猜你喜欢
  • 1970-01-01
  • 2022-06-24
  • 2011-04-23
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 2017-08-03
  • 1970-01-01
相关资源
最近更新 更多