2011-07-27 4 views
19

J'essaie de suivre les tutoriels Lazy Foo's. Mais lorsque je tente d'exécuter l'un de ses exemples que je reçois cette erreur du compilateur:SDL/SDL_image.h: Aucun fichier ou répertoire

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

Le compilateur/éditeur de liens est configuré correctement, j'utilise Code :: Blocks sous Windows XP.

Cependant, le problème est simplement qu'il n'y a pas SDL_image.h. J'ai vérifié dans le dossier qu'il aurait dû être. J'ai essayé de télécharger à nouveau la bibliothèque SDL et vérifié à nouveau, toujours pas de fichier SDL_image.h. Où est passé le fichier SDL_image.h?

La bibliothèque I dowloaded était le 'SDL-devel-1.2.14-mingw32.tar.gz' sous la rubrique 'Développement des bibliothèques' pour Win32 à partir de ce lien: http://www.libsdl.org/download-1.2.php

+1

AFAIK la façon "officielle" d'inclure SDL connexes headers est via #include "SDL.h" – trenki

+0

@trenki: Bien qu'il se trouve habituellement sous '/ usr/include/SDL' sur un box unixlike –

+2

@phresnel: Je sais, c'est pourquoi' sdl-config --cflags - libs' contient '-I/usr/include/SDL' – trenki

Répondre

32

Vous devez installer SDL_image séparément. Il n'est pas livré avec SDL.

+2

Pour ceux qui utilisent SDL2, le nom de fichier a été changé en" SDL2_image.h ".Voir documentation: http: // wiki.libsdl.org/MigrationGuide#line-435 –

+0

Sur ma boîte, le fichier se trouve dans /usr/local/include/SDL2/SDL_image.h Essentiellement, nécessitant une importation depuis "SDL2/SDL_image.h" et un lien avec -lSDL_image. – alok

+0

@BitFracture cela dépend probablement, pour moi c'est toujours 'SDL_image.h', pour être exact c'est' SDL2/SDL_image.h'. –

3

Dans le troisième tutoriel de lazyfoo est complètement expliqué.

Fondamentalement, vous devez ajouter "-lSDL_image" à la ligne de compilation.

1

Dans votre cas que vous utilisez Windows, vous devez d'abord installer sdl_image puis

#include <SDL_image.h> 

pas

#include <SDL/SDL_image.h> 

Si vous utilisez Linux et votre package sdl-image est installé à /usr/include/SDL puis vous devez utiliser

#include <SDL_image.h> 

I n la plupart du temps lorsque vous installez à partir de la source dans Linux. Votre colis ne peut pas résider dans /usr/include/SDL

Dans ce genre de situation, j'utilise

#include <SDL/SDL_image.h> 

et il fonctionne

0

Vous devez télécharger « SDL_image-devel-1.2.4-VC6. zip » Pour les blocs de code lien de téléchargement» http://www.libsdl.org/projects/SDL_image/release/SDL_image-devel-1.2.4-VC6.zip

copie les fichiers présents dans le dossier comprennent que vous trouverez dans la fi zip le après l'extraction. Et collez-le dans le C: \ SDL \ include \ SDL dans mon cas ou dans le répertoire où vos autres SDL * .h sont présents. Similaire, Copiez les fichiers présents dans le dossier lib du fichier zip et collez-le dans C: \ SDL \ lib ou dans le dossier où d'autres fichiers lib sont présents. Puis copiez tous les fichiers * .dll présents dans l'archive de C: \ windows \ system32 Ensuite, vous devez ajouter "-lSDL_image" à la ligne de compilation en ouvrant les paramètres> compilateur & débogueur> éditeur de liens.

Puis ouvrez un projet de fichier vide et ajoutez le fichier vide au projet puis #include "SDL \ SDL_image.h" Espérons que cela fonctionne pour vous !!

Ou

SDL_image-devel-1.2.4-VC6.zip Premier téléchargement de lien ci-dessus donné et lien Aller >>http://www.lazyfoo.net/SDL_tutorials/lesson03/windows/codeblocks/index.php pour explaination plus détaillée.

1

J'ai eu le même problème "erreur: SDL/SDL_image.h: Aucun tel fichier ou répertoire", j'ai résolu ceci en faisant ceci: http://wiki.codeblocks.org/index.php?title=Using_SDL_with_Code::Blocks ... regardez l'image avec le nom "Project's build options" et écrire des choses à l'intérieur ces cercles rouges dans mon cas, cela m'a aidé. Bonne chance! (Désolé pour le mauvais anglais): P

1

Vous devez installer la bibliothèque SDL_image comme mentionné dans les autres réponses, si vous êtes sur un système à base de Debian, vous pouvez simplement installer avec la commande suivante:

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

Pour Toute personne qui essaie cela, une mise à jour serait d'ajouter réellement "-lSDL2_image" à votre ligne de compilation. Tout le monde a simplement "-lSDL_image" qui a changé lorsque SDL2 a été libéré.Après cela, il suffit d'aller à la corbeille et d'ajouter tous vos fichiers .dll à System32 et vous devriez être tous ensemble!

Questions connexes