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 -m32
opción si usa el gcc presente en c:\mysys2\mingw32\bin
.
Si la carpeta está vacía actualmente, ingrese:
msys
consola.pacman -S mingw-w64-i686-toolchain
y usa este comando.
ReferirseSubsistemasección de este documento para obtener más información.