如何在 MSYS2 中设置 SDL2?我收到错误“对‘WinMain’的未定义引用”

Gak*_*kgu 1 sdl sdl-2 msys2

$ make
g++ main.cpp -I/mingw/include -L/mingw/lib -w -Wall -lSDL2main -lSDL2 -o test
/usr/lib/../lib/libmsys-2.0.a(libcmain.o): In function `main':
/msys_scripts/msys2-runtime/src/msys2-runtime/winsup/cygwin/lib/libcmain.c:37: undefined reference to `WinMain'
/msys_scripts/msys2-runtime/src/msys2-runtime/winsup/cygwin/lib/libcmain.c:37:(.text.startup+0x94): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `WinMain'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

Mingw 教程和我的教程之间的区别是 '-lmingw32' 选项。

但是 MSYS2 中没有“mingw32”文件。

如何解决?

mat*_*865 5

有 2 个版本或 gcc 工具链:类似 Cygwinmsys/gcc和 native mingw-w64-i686-gcc, mingw-w64-x86_64-gcc.

在您的情况下,您需要安装mingw-w64-*工具链并根据 arch 使用 MINGW32 或 MINGW64 shell。