2011-07-27 40 views
19

Estoy tratando de seguir Lazy Foo's tutoriales. Pero cuando trato de ejecutar uno de sus ejemplos me sale este error del compilador:SDL/SDL_image.h: Ningún archivo o directorio

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

El compilador/enlazador se ha configurado correctamente, estoy usando Code :: Blocks en Windows XP.

Sin embargo, el problema es simplemente que no hay SDL_image.h. Revisé la carpeta que supuestamente debería haber sido. Intenté descargar la biblioteca SDL nuevamente y verifiqué nuevamente, todavía no hay archivo SDL_image.h. ¿A dónde se dirigió el archivo SDL_image.h?

La biblioteca me dowloaded fue el 'SDL-devel-1.2.14-mingw32.tar.gz' en 'bibliotecas de desarrollo' para Win32 desde este enlace: http://www.libsdl.org/download-1.2.php

+1

AFAIK la forma" oficial "de incluir SDL relacionado encabezados es a través de #include "SDL.h" – trenki

+0

@trenki: Aunque se encuentra usualmente en '/ usr/include/SDL' en boxbox unixlike –

+2

@phresnel: lo sé, es por eso' sdl-config --cflags - libs' contiene '-I/usr/include/SDL' – trenki

Respuesta

32

Es necesario instalar SDL_image por separado. No se envía con SDL.

+2

Para quienes usan SDL2, el nombre del archivo ha cambiado a" SDL2_image.h ". Consulte la documentación: http: // wiki.libsdl.org/MigrationGuide#line-435 –

+0

En mi caja, el archivo se encuentra en /usr/local/include/SDL2/SDL_image.h. Esencialmente, requiere una importación desde "SDL2/SDL_image.h" y enlazar con -lSDL_image. – alok

+0

@BitFracture probablemente depende, para mí sigue siendo 'SDL_image.h', para ser exactos es' SDL2/SDL_image.h'. –

3

En el tercer tutorial de lazyfoo se explica completamente.

Básicamente, debe agregar "-lSDL_image" a la línea de compilación.

1

En su caso lo está usando Windows, entonces primero debe instalar sdl_image y luego

#include <SDL_image.h> 

no

#include <SDL/SDL_image.h> 

Si estaba utilizando Linux y su paquete sdl-image se instala en /usr/include/SDL entonces necesita usar

#include <SDL_image.h> 

I n la mayoría de los casos cuando instala desde el origen en Linux. Su paquete puede no ser residente en /usr/include/SDL

En este tipo de situación, utilizo

#include <SDL/SDL_image.h> 

y funciona

0

usted tiene que descargar "SDL_image-devel-1.2.4-VC6. zip" Para bloques de código enlace de descarga» http://www.libsdl.org/projects/SDL_image/release/SDL_image-devel-1.2.4-VC6.zip

copia los archivos presentes en la carpeta que incluye se encuentra dentro de la fi postal después de la extracción. Y péguelo en C: \ SDL \ include \ SDL en mi caso o en el directorio donde están presentes sus otros SDL * .h.

Similar, Copie los archivos presentes en la carpeta lib del archivo zip y péguelos en C: \ SDL \ lib o en la carpeta donde están presentes otros archivos lib. Luego copie todos los archivos * .dll presentes en el archivo de C: \ windows \ system32 Además, debe agregar "-lSDL_image" a la línea de compilación abriendo configuración> compilador & debugger> linker.

A continuación, abra un proyecto de archivo vacío y agregue el archivo vacío al proyecto, luego #include "SDL \ SDL_image.h" ¡Espero que funcione para usted!

O

Primero descarga SDL_image-devel-1.2.4-VC6.zip desde arriba dada enlace y enlace Goto >>http://www.lazyfoo.net/SDL_tutorials/lesson03/windows/codeblocks/index.php para la explicación más detallada.

1

tuve el mismo problema "error: SDL/SDL_image.h: No existe tal archivo o directorio", lo resolví haciendo esto: http://wiki.codeblocks.org/index.php?title=Using_SDL_with_Code::Blocks ... mira la imagen con el nombre "Opciones de compilación del proyecto" y escribe cosas adentro que círculos rojos en mi caso ayudaron. ¡Buena suerte! (Lo siento por mala Inglés): P

1

Es necesario instalar la biblioteca SDL_image como se menciona en las otras respuestas, si usted está en un sistemas basados ​​en Debian sólo tiene que instalar con el siguiente comando:

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

Para cualquiera que intente esto, una actualización sería agregar realmente "-lSDL2_image" a su línea de compilación. Todos los demás simplemente tienen -lSDL_image ", que cambió cuando se lanzó SDL2. Después de eso simplemente ve al contenedor y agrega todos tus archivos .dll a System32 y ¡deberías estar todo listo!

Cuestiones relacionadas