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

관련 정보