Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'initialisation de SDL_Image

    14 mars 2019 à 23:04:03

    Bonsoir à tous,

    J'ai actuellement un soucis avec un jeu que j'ai réalisé en C avec SDL2 sous KaliLinux.

    J'ai dû réinstaller mon Kali (version 4.19.0-kali3-amd64) et donc réinstaller les bibliothèques SDL2. Malgré quelques problèmes, elles semblent toutes correctement installé et mon jeu compile tout à fait bien.

    Sauf que non ! Le jeu plante lors de l'initialisation de SDL_Image avec le message d'erreur suivant : SDL_image Error: PNG images are not supported.

    Le jeu fonctionnait à merveille avant la réinstallation, ce ne semble donc pas un problème de code, et j'ai beau chercher, je n'ai pas trouvé la solution. (Je l'admet, les nombreuses complications d'installation des librairies m'ont rendu quelque peu impatient).

    Je vous met à disposition l'initialisation de SDL2_image, le Makefile ainsi que le ldd du programme.

    //Chargement des .png (SDL_Image 2)
    	int imgFlags = IMG_INIT_PNG;
    	if(!(IMG_Init(imgFlags) & imgFlags))
    	{
    		printf( "SDL_image n'a pu être initialisée! SDL_image Error: %s\n", IMG_GetError() );
    		exit(1);
    	}

    //L'initialisation de SDL_image

    CFLAGS=
    
    all: SOVIETWAR
    
    SOVIETWAR: init.o input.o draw.o main.o map.o player.o monster.o bigMonster.o fatMonster.o object.o pnj.o rocket.o sounds.o explosions.o font.o menu.o
    	gcc -o SOVIETWAR init.o input.o draw.o main.o map.o player.o monster.o bigMonster.o fatMonster.o object.o pnj.o rocket.o sounds.o explosions.o font.o menu.o -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    map.o: map.c prototypes.h defs.h
    	gcc -o map.o -c map.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    init.o: init.c prototypes.h defs.h
    	gcc -o init.o -c init.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    player.o: player.c prototypes.h defs.h
    	gcc -o player.o -c player.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    monster.o: monster.c prototypes.h defs.h
    	gcc -o monster.o -c monster.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    bigMonster.o: bigMonster.c prototypes.h defs.h
    	gcc -o bigMonster.o -c bigMonster.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    fatMonster.o: fatMonster.c prototypes.h defs.h
    	gcc -o fatMonster.o -c fatMonster.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    object.o: object.c prototypes.h defs.h
    	gcc -o object.o -c object.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    pnj.o: pnj.c prototypes.h defs.h
    	gcc -o pnj.o -c pnj.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    rocket.o: rocket.c prototypes.h defs.h
    	gcc -o rocket.o -c rocket.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    sounds.o: sounds.c prototypes.h defs.h
    	gcc -o sounds.o -c sounds.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    explosions.o: explosions.c prototypes.h defs.h
    	gcc -o explosions.o -c explosions.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    font.o: font.c prototypes.h defs.h
    	gcc -o font.o -c font.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    menu.o: menu.c prototypes.h defs.h
    	gcc -o menu.o -c menu.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    input.o: input.c prototypes.h defs.h
    	gcc -o input.o -c input.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    draw.o: draw.c prototypes.h defs.h
    	gcc -o draw.o -c draw.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    main.o: main.c prototypes.h defs.h
    	gcc -o main.o -c main.c -Wall -L./lib -I./include -lSDL2 -lSDL2_ttf -lSDL2_image -lSDL2_mixer
    
    clean:
    	rm -rf *.o
    
    mrproper: clean
    	rm -rf SOVIETWAR
    

    //Makefile



    //ldd

    Je viens donc vers vous car je ne sais plus où et que chercher. Je n'ai pas essayé de désinstaller et réinstaller SDL_image mais je ne sais pas trop comment m'y prendre proprement.

    Si vous avez des pistes pour m'aider je suis preneur !

    Bien à vous,

    M.Poulet

    -
    Edité par M.Poulet 14 mars 2019 à 23:05:23

    • Partager sur Facebook
    • Partager sur Twitter
      14 mars 2019 à 23:56:47

      Hello,

      Une piste: as-tu bien libpng16-16.dll dans le répertoire de l'exécutable ou dans un path ?

      -
      Edité par edgarjacobs 14 mars 2019 à 23:59:07

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        15 mars 2019 à 13:00:07

        Salutations,

        Merci pour ta réponse ! Mon système possède bien libpng16-16.dll mais uniquement dans le dossier d'installation de SDL_image. Je l'ai déplacé dans le répertoire du jeu ainsi que dans le repertoire contenant les librairies mais ça n'a pas fonctionné.

        • Partager sur Facebook
        • Partager sur Twitter
          15 mars 2019 à 16:54:58

          Bonjour,

          Comme l'auteur est sur Kalilinux, ce ne sont pas des DLL qu'il faut (on est pas sur Windows, non? o_O ). Vérifie que tu as bien installé les bibliothèques suivantes:

          'libsdl2-image-dev' et 'libpng-dev'

          Après, je suis utilisateur d'Ubuntu et Lubuntu , donc Kali linux je ne connais pas > cf la documentation de Kalilinux.:)

          Edit: bon apparemment libsdl2-image-dev est installé , désolé pour l'erreur , mais vérifie pour libpng-dev .

          -
          Edité par Warren79 15 mars 2019 à 16:57:43

          • Partager sur Facebook
          • Partager sur Twitter

          Mon site web de jeux SDL2 entre autres : https://www.ant01.fr

            15 mars 2019 à 21:07:13

            Bonsoir à vous,

            Et bien il semble être installé mais dans un path inhabituel (enfin pas dans le dossier lib) :

            J'ai essayé de télécharger le pack libpng-dev_1.6.36-5_am64.deb via : https://debian.pkgs.org/10/debian-main-amd64/libpng-dev_1.6.36-5_amd64.deb.html

            Voici le nouveau ldd :

            • Partager sur Facebook
            • Partager sur Twitter
              28 mars 2019 à 16:39:26

              Bon alors, j'ai tout désinstallé et réinstallé, ete j'ai toujours le même soucis cependant le ldd diffère.

              C'est assez étrange car j'ai essayé de réinstallé libpng-dev et il est déjà installé avec la dernière mise à jour. Il s'agit peut-être d'un problème de path lors de la recherche des librairies du Makefile ?

              • Partager sur Facebook
              • Partager sur Twitter

              Problème d'initialisation de SDL_Image

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown