使用 -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並使用該指令。

參考子系統請參閱本文檔部分以取得更多資訊。

相關內容