msys2 mingw64 シェル内で、32 ビット モードで実行するために、-m32 オプションを使用してソフトウェアをコンパイルしたいと思います。
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
c:\msys2 の mingw32.exe シェルも使用しました。この下に pacman -S mingw-w64-i686-toolchain をインストールしました。
mingw64 bash シェルから gcc -m32 を使用すると、i386 objs がビルドされるようですが (objdump で確認)、ご覧のとおり、リンクは成功しません。
答え2
-m32
に存在する gcc を使用する場合は、 オプションを使用できますc:\mysys2\mingw32\bin
。
現在フォルダが空の場合は、次の場所に移動します。
msys
コンソール。pacman -S mingw-w64-i686-toolchain
このコマンドを使用します。
参照するサブシステム詳細については、このドキュメントのセクションを参照してください。