UbuntuでMingw-w64を使用してSDL2をクロスコンパイルすることはできません。

UbuntuでMingw-w64を使用してSDL2をクロスコンパイルすることはできません。

SDLダウンロード

私はUbuntuでWSL2を使用しており、Windows上で実行される実行可能ファイルを作成したいと思います。現在、Linux用の実行可能ファイルを正しく構築できます。 SDL MinGw Windows開発ツール(上記のリンク)を/ optフォルダにダウンロードしました。を実行すると、make cross次の出力が表示されます。

for arch in i686-w64-mingw32 x86_64-w64-mingw32; do \
    make install-package arch=$arch prefix=/usr/local/$arch; \
done
make[1]: Entering directory '/opt/SDL2-2.0.12'
*** ERROR: i686-w64-mingw32 or /usr/local/i686-w64-mingw32 does not exist!
make[1]: *** [Makefile:21: install-package] Error 1
make[1]: Leaving directory '/opt/SDL2-2.0.12'
make[1]: Entering directory '/opt/SDL2-2.0.12'
*** ERROR: x86_64-w64-mingw32 or /usr/local/x86_64-w64-mingw32 does not exist!
make[1]: *** [Makefile:21: install-package] Error 1
make[1]: Leaving directory '/opt/SDL2-2.0.12'
make: *** [Makefile:16: cross] Error 2

得たものを見つけたら

 which i686-w64-mingw32-g++
/usr/bin/i686-w64-mingw32-g++

which x86_64-w64-mingw32-g++
/usr/bin/x86_64-w64-mingw32-g++

/usr/binが私のパスにあり、/opt/SDL2-2.0.12フォルダにこれらの名前の実行可能ファイルがあります。

原因は、g++の代わりにx86_64-w64-mingw32-g++を使用してSDLプログラムをコンパイルしようとしたときです。

ベストアンサー1

プレフィックスディレクトリを作成する必要があります。

mkdir /usr/local/{i686,x86_64}-w64-mingw32

おすすめ記事