2011-07-27 81 views
19

我正在尝试关注Lazy Foo's教程。但是,当我尝试运行的他的例子之一,我得到这个编译器错误:SDL/SDL_image.h:没有这样的文件或目录

error: SDL/SDL_image.h: No such file or directory

的编译器/连接设置正确,我使用的代码::在Windows XP块。

但是,问题很简单,就是没有SDL_image.h。我已经检查过它应该是的文件夹。我试图再次下载SDL库并再次检查,仍然没有SDL_image.h文件。 SDL_image.h文件去了哪里?

我dowloaded该库是 'SDL-devel的-1.2.14-mingw32.tar.gz' 下 '开发库' 为Win32从这个链接:http://www.libsdl.org/download-1.2.php

+1

AFAIK包含与SDL相关的”官方“方式头文件是#include“SDL.h” – trenki

+0

@trenki:虽然它通常位于'/ usr/include/SDL'上unixlike boxery –

+2

@phresnel:我知道,这就是为什么'sdl-config --cflags - libs'包含'-I/usr/include/SDL' – trenki

回答

32

您需要单独安装SDL_image。它不随SDL提供。

+2

对于那些使用SDL2的用户,文件名已经更改为“SDL2_image.h”。 wiki.libsdl.org/MigrationGuide#line-435 –

+0

在我的盒子里,该文件位于/usr/local/include/SDL2/SDL_image.h。本质上,需要从“SDL2/SDL_image.h”导入并链接到-lSDL_image。 – alok

+0

@BitFracture可能取决于它,对我来说它仍然是'SDL_image.h',确切的说就是'SDL2/SDL_image.h'。 –

3

在lazyfoo的第三个教程中有完整的解释。

基本上,您必须在编译行中添加“-lSDL_image”。

1

在你的情况,你使用的是Windows,那么你应该先安装sdl_image然后

#include <SDL_image.h> 

#include <SDL/SDL_image.h> 

如果您正在使用Linux和您的sdl-image软件包安装到/usr/include/SDL然后您需要使用

#include <SDL_image.h> 

I大多数情况下,当你从源代码安装在Linux中。你的包可能无法在/usr/include/SDL

驻留在这些样的状况,我用

#include <SDL/SDL_image.h> 

和它的作品

0

你必须下载 “SDL_image-devel的-1.2.4-VC6。拉链” 代码块 下载链接» http://www.libsdl.org/projects/SDL_image/release/SDL_image-devel-1.2.4-VC6.zip

副本存在于包括文件夹中的文件,你会发现拉链连接的内然后将其粘贴到我的C:\ SDL \ include \ SDL中,或粘贴到您的其他SDL * .h所在的目录中。

同理,复制压缩文件lib文件夹中的文件并将其粘贴到C:\ SDL \ lib或其他lib文件所在的文件夹中。 然后复制所有存在的* .dll文件在存档中到C:\ windows \ system32 此外,您必须通过打开设置>编译器&调试器>链接器将“-lSDL_image”添加到编译行。

然后打开一个空文件项目并将空文件添加到项目中,然后#include“SDL \ SDL_image.h” 希望它适合您!从上面的链接,并 转到链接>>http://www.lazyfoo.net/SDL_tutorials/lesson03/windows/codeblocks/index.php

或者

首先下载SDL_image-devel-1.2.4-VC6.zip进行更详细的解释。

1

您需要安装SDL_image图书馆像其他的答案中提到,如果你是一个基于Debian的系统,你可以简单地用下面的命令来安装:

sudo apt-get install libsdl-image1.2-dev 
0

对于任何尝试此操作的人都会更新“-lSDL2_image”到您的编译行。其他人只是简单地有-lSDL_image“在SDL2发布时发生了变化,然后进入bin并将所有.dll文件添加到System32中,并且您应该全部设置好了!

相关问题