所以最近我用Ubuntu下载了Windows 10上的Linux子系统。
我可以使用g++
命令将SDL2应用程序编译到Linux,但是每当我尝试使用i686-w64-mingw32-g++
使用此命令时,都会出现错误,提示main.cpp:5:9: fatal error: SDL2/SDL.h: No such file or directory
。
我正在使用的命令是i686-w64-mingw32-g++ main.cpp -w -lSDL2 -o main.exe
。
有人知道如何解决此问题吗? :(
[编辑]
因此,现在我尝试使用以下命令指定必需文件的目录:g++ main.cpp -I/usr/include/SDL -L/usr/lib/x86_64-linux-gnu -w -Wall -Wextra -std=c++17 -lSDL2 -o main
这是可行的,但是当我与mingw一起使用时,它不会i686-w64-mingw32-g++ main.cpp -I/usr/include/SDL -L/usr/lib/x86_64-linux-gnu -w -Wall -Wextra -std=c++17 -lSDL2 -o main
答案 0 :(得分:1)
您需要在命令行上包含SDL的include目录的路径。但是,您需要包括mingw32的已下载 SDL的路径,而不是/ usr / include / SDL2。区别在于/ usr / include / SDL2中的标头适用于Linux,/ usr / lib中的libs也适用于Linux,但是您需要链接到Windows库。
我通常要做的是下载Mingw32的开发库,并将它们直接放入我的项目目录中。然后,您所需要做的就是将 -ISDL2-2.0.8 / i686-w64-mingw32 / include -LSDL2-2.0.8 / i686-w64-mingw32 / lib 添加到命令行,它将能够找到所需的标头和库。最后,确保将 SDL2-2.0.8 / i686-w64-mingw32 / bin / SDL2.dll 复制到Makefile中的可执行目录中。
此外,请记住也要链接SDLmain。它会为您以及所有这些创建WinMain,然后调用您的main函数。