SDL2_image 未找到

SDL2_image not found

我正在尝试编译以下具有 headers:

的代码
#include <SDL2/SDL.h>
#include <SDL2_image/SDL_image.h>

但是在 运行 下面的 makefile 之后:

g++ -std=c++11 src/main.cpp -lSDL2 -lSDL2_image

我收到以下错误:

fatal error: SDL2_image/SDL_image.h: No such file or directory
#include <SDL2_image/SDL_image.h>

有什么建议吗?不完全确定我安装的 SDL_image。我是 运行 这个 Ubuntu。

运行 apt-file search SDL_image.h 结果将告诉您包含文件的位置。

例如返回/usr/include/SDL2/SDL_image.h。 所以,当你想包含 SDL_image.h 时,将 include/ 之后的所有内容都写在 < >.

之间

因此,包含应如下所示:

#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>

有关此解决方案的原始讨论,请参阅问题的评论。

这个问题可以通过安装libsdl2-image-dev包来解决:

apt install libsdl2-image-dev

对于 Windows + SDL2-2.0.8 + SDL_image-2.0.4 + Codeblocks,您已将 Runtime BinariesDevelopment Libraries 添加到编译器和链接器。否则,您将收到错误 SDL2_image not found,即使您的程序目录中有 dll,也会发生这种情况。希望其他人觉得这有帮助;我必须自己弄清楚。示例:如果您的资源是分开的,您将添加两个加上您的标准 SDL2 路径到您的编译器和链接器。警告:SDL2_image.h 有它的 headers 假设 headers 与 SDL2 框架位于同一文件夹中。如果你得到关于图像 header 的错误,请在路径中包含来自 SDL 框架的 sub-folder SDL2 然后你应该在程序中包含 SDL2 作为:include <SDL.h> 而不是 include <SDL2/SDL.h>.

从 SDL 文档中,它说将 'lSDL_image' 添加到编译行的末尾。

    cc -o myprogram mysource.o `sdl-config --libs` -lSDL_image

    gcc -o myprogram mysource.c `sdl-config --libs` -lSDL_image

这里是参考 -> https://www.libsdl.org/projects/docs/SDL_image/SDL_image.html 2.2 节编译。

所以对于SDL2,你只需要将'lSDL_image'改为'lSDL2_image'即可。