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:
msys
Konsole.pacman -S mingw-w64-i686-toolchain
und verwenden Sie diesen Befehl.
VerweisenTeilsystemdieses Dokuments.