IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

undefined reference to IMG_Load [SDL_image]


Sujet :

SDL

  1. #1
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut undefined reference to IMG_Load
    Bonjour,

    *)Présentation:
    Je sais que cette question à déjà été posée et j'ai déjà fait de multiples recherches sur le Web.Mais aucune des réponses apportées ne me convient.En effet en général c'est une erreur ,un oubli:de"linker" ,de copier les ".dll" ds son projet...etc

    J'ai aussi lu les tutos sur "développez.com",mais 2 choses:
    1-Ils proposent 2 techniques différentes
    2-ils st un peu ancien.

    J'ai pourtant bien suivi le protocole ,j'ai mm réinstallé "codeBlock" et je passe de multiples essais désespérés...

    Voici comment j'ai procédé:
    1-télécharger "SDL_Image".
    2-copiéle fichier ".h" ds "MinGW/include".
    3-Copier les fichiers ".dll" mon projet.
    4-linker avec les fichier ".lib" se situant ds "MinGw/lib"

    *)Problème:
    Quand je compile j'ai cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "undefined reference to IMG_Load"


    *)Mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #include <stdio.h>
    #include <stdlib.h>
    #include <SDL/SDL.h>
    #include <SDL_ttf.h>
    #include <SDL_image.h>
     
     
    void pause();
    int fenetreAcceuil();
     
     
    int fenetreAcceuil(){
     
    //-----On charge la Sdl-----
        if (SDL_Init(SDL_INIT_VIDEO) == -1) {// Démarrage de la SDL. Si erreur :
            fprintf(stderr, "Erreur d'initialisation de la SDL : %s\n", SDL_GetError()); // Écriture de l'erreur
            exit(EXIT_FAILURE); // On quitte le programme
        }
     
        SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
        SDL_WM_SetCaption("Acceuil du Jeu", NULL);
     
    //-----SDL:Aspect visuel de la fenetre-----
     
        //****POUR CHARGER UNE IMG****
        //1-On crée la surface sur laquelle on veut travailler.
        //2-On attribut à cette surface une img défini,en chargeant l'img concernee
        //3-On "colle" cette surface ds la fenetre selon les paramétres souhaités
        SDL_Surface *surfacePrincipale=NULL,*imgDeFond=NULL;
        SDL_Rect positionFond;
     
        positionFond.x=0;//On determide la position de l'imd de fond
        positionFond.y=0;
        imgDeFond=IMG_Load("img/fondAcceuil.jpg");
        SDL_BlitSurface(imgDeFond,NULL,surfacePrincipale,&positionFond);
     
        SDL_Flip(surfacePrincipale);//On actualise l'écran pour que l'img puisse apparaitre.
        pause();
     
        SDL_FreeSurface(imgDeFond);
        SDL_Quit();
        return EXIT_SUCCESS;
     
    }
     
    void pause(){
        int continuer = 1;
        SDL_Event event;
     
        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
            }
        }
    }

    *)Précisions:

    j'ai 2fichiers sources un main est celui la cependant ou que je copie colle ce code il ne fonctionne pas (ds le "main" ou dans celui la).


    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Pour moi ça saute au yeux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <SDL/SDL.h>
    #include <SDL_ttf.h>
    #include <SDL_image.h>
    ça dépend ou tu as mis la SDL , normalement on installe la lib SDL dans le dossier SDL , donc ça sera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <SDL/SDL.h>
    #include <SDL/SDL_ttf.h>
    #include <SDL/SDL_image.h>

  3. #3
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @Kannagi//

    Salut et merci à toi

    *)Quand je fais tes conseils et que je remplace par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <SDL/SDL.h>
    #include <SDL/SDL_ttf.h>
    #include <SDL/SDL_image.h>
    j'ai cette erreur quand je compile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fatal error:SDL/SDL_ttf.h:No such file directory
    C'est seulement sous cette forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <SDL/SDL.h>
    #include <SDL_ttf.h>
    #include <SDL_image.h>
    Que je n'ai pas d'erreur de compilation ds les "includes".

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    fatal error:SDL/SDL_ttf.h:No such file directory
    Cela veut dire seulement qu'il ne le trouve pas donc je me repete mais SDL_ttf.h et SDL_image.h doivent se trouvé dans le dossier SDL , donc a coter de SDL.h.

  5. #5
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @Kannagi//

    Je vais essayer .Mais dans ce cas pourquoi quand j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <SDL_ttf.h>
    #include <SDL_image.h>
    Il trouve?

    EDIT:Je viens de vérifier les fichiers:"SDL_image.h" et "SDL_ttf.h" sont dans le même dossier que "SDL.h".
    C'est à dire :\CodeBlocks\MinGW\include .Si tu le souhaites je peux te montrer une capture d'écran.

    EDIT1: De plus lorsque j'utilise les fonctions de "SDL_ttf"je ne rencontre (apparemment) aucun problème à la compilation.

  6. #6
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Il trouve parce que tu as surement mis les fichier .h dans :\CodeBlocks\MinGW\include , ce qu'il ne faut pas faire mais plutot :\CodeBlocks\MinGW\include/SDL .
    C'est juste que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include <SDL_ttf.h>
    #include <SDL_image.h>
    N'est pas un code portable , donc ne marche que chez toi.

  7. #7
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Bonjour,

    Tout d'abord désolé je n'ai pas pu pendant pas mal de temps coder .J'ai donc toujours ce problème mais avec "SDL_ttf.h" .

    @Kannagi//

    Je n'ai pas de dossier "SDL",dans:"\CodeBlocks\MinGW\include/SDL "
    juste "include". Dois je ne créer un?(dossier SDL)et si oui que mettre dedans?(que les fichiers ".h" ou d'autres aussi?).

    Merci de votre aide .
    a+.

  8. #8
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    oui tu dois le créer et ne mettre que des .h

  9. #9
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @Kannagi//

    je dois le créer et n'y mettre que les ".h" de la sdl c'est ça?Je vais essayer dés que je pourrais merci à toi

  10. #10
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @Kannagi//

    Je viens juste de suivre tes conseils et effectivement l'erreur a disparu mais maintenant les erreurs sont à un autre endroit.
    Maintenant à chaque fois que je fais appel à une fonction de cette bibliothèque j'ai un message d'erreur à la compilation du genre:

    --si la fct est "TTF_Init();"
    undefined reference to "TTF_Init()"
    --Code
    Voici le code (je ne pense pas que l'erreur vienne de la):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //-----On charge la SDL_ttf
         if(TTF_Init() == -1)
        {
            fprintf(stderr, "Erreur d'initialisation de TTF_Init : %s\n", TTF_GetError());
            exit(EXIT_FAILURE);
        }
    --

  11. #11
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    undefined reference to "TTF_Init()"
    Ce genre erreur je pense que tu peux le résoudre sans moi , juste en lisant ce qu'il y a écrit comme son nom l'indique il ne le trouve pas , donc soit tu n'as pas link la librairie , soit le TTF ne se trouve pas dans les include.

  12. #12
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @Kannagi//

    Oui effectivement tu as raison désolé .
    Comme ça doit faire un petit moi que je n'ai pas codé j'ai un peu perdu l'habitude.

    MErci à toi

    Cependant j'ai maintenant un autre probléme à la compilation,j'ai ce message d'erreur:

    line 315 undefined reference to 'SDl_main'
    Ca doit être une erreur de "link" comme la dernière fois le problème c'est que je ne sais pas sur quoi!J'ai linker le projet avec les fichiers en ".a" correspondant

  13. #13
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Comme d'hab include ou link ,par contre si t'arrive pas le faire tu n'as qua récupérer un template tout fait : http://jeux.developpez.com/telecharg...ur-Code-Blocks

  14. #14
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @Kaniga//

    Merci à toi.

    Juste des quelques question qui vont te sembler(peut etre) totalement stupide :
    1-A ton avis c'est cette organisation qui est la meilleure?(moi je trouve que oui mais bon je débute)Ainsi que le fait d'inclure les dossier "include"...etc direct danss le projet?
    2-Mon probléme reste quand même et je ne sais pas pourquoi?

  15. #15
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    1) les gouts et les couleurs , ça peut etre plus pratique si on partage un projet.
    2) le probleme persiste ou dans le template ? parce que normalement il fonctionne , si c'est dans ton projet ben continu a utilise le template et quand tu comprendra un peu mieux comment ça fonctionne derrière tu tentera 'installer' une lib.

  16. #16
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @Kanaging//

    Merci à toi et à ton aide quasi à domicile.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SDL 2.0] "undefined reference to IMG_Load" avec SDL2_image
    Par zeloutre1 dans le forum SDL
    Réponses: 1
    Dernier message: 03/01/2014, 21h46
  2. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  3. Compilation de xmms : undefined reference to...
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/02/2005, 19h05
  4. undefined reference to `xmlParseFile'
    Par Clemaster dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 25/06/2004, 20h38
  5. g++ : undefined reference to ...
    Par le_barbu dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 14/05/2004, 07h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo