Compilar en msys2 mingw64 con la opción -m32

Compilar en msys2 mingw64 con la opción -m32

Dentro de un shell msys2 mingw64, me gustaría compilar un software con la opción -m32 para ejecutarlo en modo de 32 bits.

He instalado mingw-w64-x86_64-toolchain

Pero cuando compilo con -m32, tengo los siguientes errores:

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

Estoy pensando en un problema de instalación de bibliotecas, pero no sé cómo encontrarlas.

Respuesta1

Utilicé el shell mingw32.exe también en c:\msys2. Debajo de esto instalé: pacman -S mingw-w64-i686-toolchain

El uso de gcc -m32 desde el shell bash mingw64 parece construir objs i386 (verificando con objdump) pero no se vincula correctamente como vio.

Respuesta2

Puede usar la -m32opción si usa el gcc presente en c:\mysys2\mingw32\bin.

Si la carpeta está vacía actualmente, ingrese:

  1. msysconsola.

  2. pacman -S mingw-w64-i686-toolchainy usa este comando.

ReferirseSubsistemasección de este documento para obtener más información.

información relacionada