SDL / SDL_image.h:没有这样的文件或目录

时间:2011-07-27 11:31:23

标签: c++ sdl codeblocks

我正在尝试关注Lazy Foo's教程。但是当我尝试运行他的一个例子时,我得到了这个编译错误:

  

错误:SDL / SDL_image.h:没有这样的文件或目录

编译器/链接器设置正确,我在Windows XP上使用Code :: Blocks。

然而,问题只是没有SDL_image.h。我已经检查了它应该是的文件夹。我试图再次下载SDL库并再次检查,仍然没有SDL_image.h文件。 SDL_image.h文件在哪里?

我下载的库是来自此链接的'开发库'for Win32下的'SDL-devel-1.2.14-mingw32.tar.gz':http://www.libsdl.org/download-1.2.php

8 个答案:

答案 0 :(得分:37)

您需要单独安装SDL_image。它没有附带SDL。

答案 1 :(得分:3)

您需要像其他答案中提到的那样安装SDL_image库,如果您使用的是基于Debian的系统,则可以使用以下命令进行安装:

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

答案 2 :(得分:2)

完全解释了lazyfoo的第三个教程。

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

答案 3 :(得分:1)

在您使用Windows的情况下,您应先安装sdl_image然后再安装

#include <SDL_image.h>

不是

#include <SDL/SDL_image.h>

如果您使用的是Linux,而sdl-image软件包已安装到/usr/include/SDL,那么您需要使用

#include <SDL_image.h>

在大多数情况下,从linux中安装源代码时。您的包裹可能不在/usr/include/SDL

在这种情况下,我使用

#include <SDL/SDL_image.h>

并且有效

答案 4 :(得分:1)

我有同样的问题“错误:SDL / SDL_image.h:没有这样的文件或目录”,我通过这样解决了这个问题:http://wiki.codeblocks.org/index.php?title=Using_SDL_with_Code::Blocks ...看看名为“Project的构建选项”的图片,在我的情况下,在红色圆圈内写东西有帮助。祝好运! (抱歉英语不好):P

答案 5 :(得分:0)

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

复制提取后在zip文件中找到的include文件夹中的文件。并将其粘贴到我的案例中的C:\ SDL \ include \ SDL或其他人的目录中 SDL * .h存在。

类似,复制zip文件的lib文件夹中的文件并将其粘贴到C:\ SDL \ lib或其他lib文件所在的文件夹中。 然后将存档中存在的所有* .dll文件复制到C:\ windows \ system32 此外,您必须通过打开设置&gt;将“-lSDL_image”添加到编译行。编译器和放大器;调试器&gt;接头

然后打开一个空文件项目并将空文件添加到项目中,然后#include“SDL \ SDL_image.h”   希望它对你有用!!

首先从上面给出的链接下载SDL_image-devel-1.2.4-VC6.zip  转到链接&gt;&gt; http://www.lazyfoo.net/SDL_tutorials/lesson03/windows/codeblocks/index.php有更详细的解释。

答案 6 :(得分:0)

对于任何尝试此操作的人来说,更新都是实际添加&#34; -lSDL2_image&#34;到您的编译行。其他人只需要-lSDL_image&#34;在SDL2发布时发生了变化。之后,只需转到bin并将所有.dll文件添加到System32,您应该全部设置好!

答案 7 :(得分:0)

适用于我的(32b)的SDL2 Windows安装程序(C语言):

  1. 下载 SDL2_image-devel-2.0.5-mingw.tar.gz SDL2_image-2.0.5-win32-x86 。

  2. 复制 SDL2_image-devel-2.0.5-mingw \ SDL2_image-2.0.5 \ i686-w64-mingw32 \ include \ SDL2 \ SDL_image.h ” em>到您的SDL文件夹,其中所有标头都是我的情况 MinGW \ include \ SDL2

  3. 将内容从 SDL2_image-devel-2.0.5-mingw \ SDL2_image-2.0.5 \ i686-w64-mingw32 \ bin 复制到< em>“ \ MinGW \ bin

  4. 将以下内容的副本: SDL2_image-devel-2.0.5-mingw \ SDL2_image-2.0.5 \ i686-w64-mingw32 \ lib MinGW \ lib

  5. 包括这样的标头:

    chart.radius = am4core.percent(100);
    chart.innerRadius = am4core.percent(80);
    chart.paddingTop = 0;
    chart.paddingRight = 0;
    chart.paddingBottom = 0;
    chart.paddingLeft = 0;
    
  6. 将其链接到您的makefile中(请参阅此 '... -llibSDL2_image ...' ):

    #include <SDL2/SDL_image.h>
  1. 虚拟CodeExample.c
        build:
            gcc -Wfatal-errors \
            -std=c99 \
            ./*.c \
            -I"C:\libsdl\include" \
            -L"C:\libsdl\lib" \
            -lmingw32 \
            -lSDL2main \
            -lSDL2 \
            -lSDL2 \
            -llibSDL2_image \
            -o example.exe