Скомпилировать в msys2 mingw64 с опцией -m32

Скомпилировать в msys2 mingw64 с опцией -m32

Внутри оболочки msys2 mingw64 я хотел бы скомпилировать программное обеспечение с опцией -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

Я использовал оболочку mingw32.exe также в c:\msys2. В ней я установил: pacman -S mingw-w64-i686-toolchain

Использование gcc -m32 из оболочки bash mingw64, похоже, создает объекты i386 (проверка с помощью objdump), но, как вы видели, линковка не происходит.

решение2

Вы можете использовать эту -m32опцию, если используете gcc, присутствующий в c:\mysys2\mingw32\bin.

Если папка в данный момент пуста, перейдите:

  1. msysконсоль.

  2. pacman -S mingw-w64-i686-toolchainи используйте эту команду.

СсылатьсяПодсистемараздел этого документа для получения более подробной информации.

Связанный контент