- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以最近我用 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
.
https://imgur.com/a/uqcGCoJ
任何人都知道如何解决这个问题? :(
[编辑]
所以现在我尝试使用以下命令指定必要文件的目录: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
https://imgur.com/a/sF6CpcP
最佳答案
您需要在命令行中包含 SDL 包含目录的路径。但是,您需要为 mingw32 包含下载的 SDL 的路径,而不是/usr/include/SDL2。不同之处在于/usr/include/SDL2 中的 header 适用于 Linux,而/usr/lib 中的库也适用于 Linux,但您需要链接到 Windows 库。
我通常做的是下载 Mingw32 的开发库并将它们直接放入我的项目目录中。然后你需要做的就是添加 -ISDL2-2.0.8/i686-w64-mingw32/包括-LSDL2-2.0.8/i686-w64-mingw32/lib 到您的命令行,它将能够找到它需要的头文件和库。最后,确保复制 SDL2-2.0.8/i686-w64-mingw32/bin/SDL2.dll 到 Makefile 中的可执行目录。
另外,请记住也链接 SDLmain。它为您创建一个 WinMain 以及所有这些,然后调用您的 main 函数。
关于c++ - 如何从 Linux 编译到 SDL2 应用程序到 Windows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51217941/
我是一名优秀的程序员,十分优秀!