【问题标题】:How to compile to SDL2 application to Windows from Linux?如何从 Linux 编译到 SDL2 应用程序到 Windows?
【发布时间】:2018-07-06 21:40:58
【问题描述】:

所以最近我在 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

【问题讨论】:

  • 您不需要指定.h 文件的路径,即-I /path/to/SDL2 吗?祝你好运。

标签: c++ linux ubuntu mingw sdl


【解决方案1】:

您需要在命令行中包含 SDL 包含目录的路径。但是,您需要为 mingw32 包含 下载 SDL 的路径,而不是 /usr/include/SDL2。不同之处在于 /usr/include/SDL2 中的头文件适用于 Linux,而 /usr/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 函数。

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多