gpt4 book ai didi

c++ - 如何从 Linux 编译到 SDL2 应用程序到 Windows?

转载 作者:行者123 更新时间:2023-12-02 09:57:19 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com