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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    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 confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    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 226
    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 éclairé
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    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 confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    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 226
    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 éclairé
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    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 confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    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 226
    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.

+ 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