使用 -m32 选项在 msys2 mingw64 中进行编译

使用 -m32 选项在 msys2 mingw64 中进行编译

在 msys2 mingw64 shell 中,我想使用 -m32 选项编译一个软件以便在 32 位模式下运行。

我已经安装了 mingw-w64-x86_64-toolchain

但是当我使用 -m32 进行编译时,出现以下错误:

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/lib/libmingw32.a when searching for -lmingw32
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/lib\libmingw32.a when searching for -lmingw32
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/lib/libmingw32.a when searching for -lmingw32
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lmingw32

我正在考虑库安装问题,但我不知道如何找到它们。

答案1

我也在 c:\msys2 下使用了 mingw32.exe shell。在此之下我安装了:pacman -S mingw-w64-i686-toolchain

从 mingw64 bash shell 使用 gcc -m32 似乎可以构建 i386 objs(使用 objdump 检查),但正如您所见,无法成功链接。

答案2

-m32如果您使用 中的 gcc,则可以使用该选项c:\mysys2\mingw32\bin

如果文件夹当前为空,则进入:

  1. msys安慰。

  2. pacman -S mingw-w64-i686-toolchain并使用此命令。

参考子系统请参阅本文档的部分以了解更多信息。

相关内容