我正在尝试编译以下具有标题的代码:
#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上运行它。
答案 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 Binaries
和Development Libraries
都添加到了编译器和链接器中。否则,即使程序目录中有SDL2_image not found
,也会出现错误dll
。希望其他人能找到帮助。我必须自己弄清楚。示例:如果您的资源是分开的,您将为您的编译器和链接器添加两个路径以及标准的SDL2
路径。警告:SDL2_image.h带有标头,前提是标头与SDL2框架位于同一文件夹中。如果您发现有关图像标题的错误,请在路径中包含SDL框架的子文件夹SDL2
,然后在程序中将SDL2
包括为:include <SDL.h>
而不是{{ 1}}。