Kompilieren Sie in msys2 mingw64 mit der Option -m32

Kompilieren Sie in msys2 mingw64 mit der Option -m32

Innerhalb einer msys2 mingw64-Shell möchte ich eine Software mit der Option -m32 kompilieren, um sie im 32-Bit-Modus auszuführen.

Ich habe mingw-w64-x86_64-toolchain installiert

Aber wenn ich mit -m32 kompiliere, erhalte ich die folgenden Fehler:

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

Ich vermute, dass ein Problem mit der Installation der Bibliotheken vorliegt, weiß aber nicht, wie ich sie finden kann.

Antwort1

Ich habe die mingw32.exe-Shell auch unter c:\msys2 verwendet. Darunter habe ich installiert: pacman -S mingw-w64-i686-toolchain

Die Verwendung von gcc -m32 aus der Mingw64-Bash-Shell scheint i386-Objekte zu erstellen (Überprüfung mit objdump), die Verknüpfung ist jedoch, wie Sie gesehen haben, nicht erfolgreich.

Antwort2

Sie können die Option verwenden -m32, wenn Sie den in vorhandenen gcc verwenden c:\mysys2\mingw32\bin.

Wenn der Ordner derzeit leer ist, gehen Sie zu:

  1. msysKonsole.

  2. pacman -S mingw-w64-i686-toolchainund verwenden Sie diesen Befehl.

VerweisenTeilsystemdieses Dokuments.

verwandte Informationen