如何从Linux编译到SDL2应用程序到Windows?
How to compile to SDL2 application to Windows from Linux?
所以最近我在Windows 10上下载了Linux子系统,使用Ubuntu。
我可以使用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://i.stack.imgur.com/TlZmQ.jpg
有人知道如何解决这个问题吗?:(
[编辑]
所以现在我尝试使用以下命令指定必要文件的目录: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://i.stack.imgur.com/OfCRt.jpg
您需要在命令行中包含 SDL 包含目录的路径。 但是,您需要包含 mingw32 的下载SDL 的路径,而不是/usr/include/SDL2。 区别在于/usr/include/SDL2 中的标头适用于 Linux,/usr/lib 中的 lib 也适用于 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 函数。
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 如何创建事件驱动的 SDL2 应用程序
- 如何从Linux编译到SDL2应用程序到Windows?
- 使用SDL2 C 时,该应用程序无法正确启动(0xc000007b)错误
- 我的 SDL2 应用程序仅在第一次键盘输入后出现严重延迟
- 在Visual Studio 2017上编译适用于Android的SDL2应用程序时缺少 libBox2D.so
- 创建一个可部署的CMake动态SDL2应用程序
- 是否可以将 SDL2 嵌入到应用程序中,而无需将其构建为库