找不到SDL2_image

时间:2015-10-26 22:48:18

标签: c++ ubuntu sdl sdl-2 sdl-image

我正在尝试编译以下具有标题的代码:

#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上运行它。

4 个答案:

答案 0 :(得分:3)

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

apt install libsdl2-image-dev

答案 1 :(得分:1)

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

例如,返回了/usr/include/SDL2/SDL_image.h。 因此,当您想要加入SDL_image.h时,请在include/ <之间的>之后写下所有内容。

因此,include应如下所示:

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

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

答案 2 :(得分:1)

从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'。

答案 3 :(得分:0)

对于Windows + SDL2-2.0.8 + SDL_image-2.0.4 + Codeblocks,您已经将Runtime BinariesDevelopment Libraries都添加到了编译器和链接器中。否则,即使程序目录中有SDL2_image not found,也会出现错误dll。希望其他人能找到帮助。我必须自己弄清楚。示例:如果您的资源是分开的,您将为您的编译器和链接器添加两个路径以及标准的SDL2路径。警告:SDL2_image.h带有标头,前提是标头与SDL2框架位于同一文件夹中。如果您发现有关图像标题的错误,请在路径中包含SDL框架的子文件夹SDL2,然后在程序中将SDL2包括为:include <SDL.h>而不是{{ 1}}。