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 :

Probleme Compilation SDL


Sujet :

SDL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Points : 140
    Points
    140
    Par défaut Probleme Compilation SDL
    Bonjour,

    Je suis entrain de monter un moteur 2D en c++ en utilisant un peu de SDL_Image (pour charger les images ) .

    Seulement à la compilation j'ai un problème de linkage :
    $ make
    g++ -Wall -Werror -o3 -L/usr/lib/ -lILU -lIL -lSDL_image -lSDL `sdl-config --cflags` `sdl-config --libs` -o image.out Image.o
    Image.o(.gnu.linkonce.t._ZN5Image8setImageEPc[Image::setImage(char*)]+0xcf): In function `Image::setImage(char*)':
    Image.cpp: undefined reference to `IMG_Load'
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [image.out] Erreur 1
    Voici le code de mon makefile :
    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
     
    .PHONY: all
     
    .SUFFIXES:
    .SUFFIXES: .c++ .o
     
    #Liste des maccros 
    CC = g++
    CFLAGS = -c 
    DIRLIBS = -L/usr/lib/
    LIBS = -lILU -lIL -lSDL_image -lSDL `sdl-config --cflags` `sdl-config --libs`
    OPTS = -Wall -Werror -o3
     
     
    EXE = image.out
    MAIN = main.cpp
    IMAGE = Image.cpp Image.h
    OBJ = Image.o
     
    all : $(EXE)
     
    $(EXE) : $(OBJ)
    	$(CC)  $(OPTS) $(DIRLIBS) $(LIBS) -o $(EXE) $(OBJ) 
     
    #main.o : $(MAIN)
    #	$(CC) $(CFLAGS) $(MAIN)
     
     
    Image.o : $(IMAGE)
    	$(CC) $(CFLAGS) $(IMAGE)
     
     
    clean : 
    	rm -f $(EXE) *.o *~ *.core
    J'ai bien vérifié que dans /usr/lib se trouve les librairies SDL et les header dans /usr/include.

    Ma ligne de compilation contient bien le -lSDL_image et donc je ne comprend pas mon erreur.

    J'aurais aimé aussi savoir à quoi servent les : `sdl-config --cflags` `sdl-config --libs`.

    Je m'excuse d'avance si ce thread devait se situer dans la parti compilation, mais étant spécifique a SDL, j'ai pensé à le poster ici.

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Techniquement, sdl-config est un petit programme qui affiche à l'écran les options de gcc nécessaires pour la compilation ou la liaison selon les paramètres. La mise entre anti-quotes fait que cet affichage est récupéré et utilisé directement comme paramètres de gcc. Ce mécanisme, appelé substitution de commande, est géré directement par le shell.
    tiré du tuto de anomaly :
    http://anomaly.developpez.com/tutoriel/sdl/partie1/

    Je pense que ton erreur vient donc de là, si tu lesmet, tu n'as pas besoin de specifier les lib.

    Enfin j'ai jamais tester donc je me trompe peut être

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Difficile à dire, es-tu sûr d'avoir la bibliothèque SDL_image parce qu'elle n'est pas intégré dans la bibliothèque SDL de base...

    Enfin pour ton makefile :
    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
     
    .PHONY: all
     
    .SUFFIXES:
    .SUFFIXES: .c++ .o
     
    #Liste des maccros 
    CC = g++
    CFLAGS = -c 
    DIRLIBS = -L/usr/lib/
    LIBS = -lILU -lIL -lSDL_image `sdl-config --libs`
    OPTS = -Wall -Werror -Wextra -O3 `sdl-config --cflags`
     
     
    EXE = image.out
    MAIN = main.cpp
    IMAGE = Image.cpp Image.h
    OBJ = Image.o
     
    all : $(EXE)
     
    $(EXE) : $(OBJ)
    	$(CC)  $(OPTS) $(DIRLIBS) $(LIBS) -o $(EXE) $(OBJ) 
     
    #main.o : $(MAIN)
    #	$(CC) $(CFLAGS) $(OPTS) $(MAIN)
     
     
    Image.o : $(IMAGE)
    	$(CC) $(CFLAGS) $(OPTS) $(IMAGE)
     
     
    clean : 
    	rm -f $(EXE) *.o *~ *.core
    Me semble déjà un peu mieux...

    Et comme toujours, poste un code concis qui montre le problème,
    Jc

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Points : 140
    Points
    140
    Par défaut
    Merci beaucoup.
    Grace à vos aide j'ai réusis a trouver.
    Les librariries étaient bien là, mais quand j'ai installé SDL_image, je l'ai fait à la main et je sais pas comment je m'y suis pris mais ça l'a pas réellement installé.

    Donc j'ai tenté de le réinstallé avec le rpm, mais j'ai eut un problème de version de SDL (j'avais que la 1.2.8 et non 1.2.10).

    Bon après un petit formatage (car en plus de ce problème j'avais tout un tas de problème sur yum et au niveau du son) et deux jours à galérer pour résoudre le problème de grub qui était pas dans la mbr, ça marche enfin !

  5. #5
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Citation Envoyé par Drannor
    Merci beaucoup.
    Grace à vos aide j'ai réusis a trouver.
    Les librariries étaient bien là, mais quand j'ai installé SDL_image, je l'ai fait à la main et je sais pas comment je m'y suis pris mais ça l'a pas réellement installé.

    Donc j'ai tenté de le réinstallé avec le rpm, mais j'ai eut un problème de version de SDL (j'avais que la 1.2.8 et non 1.2.10).

    Bon après un petit formatage (car en plus de ce problème j'avais tout un tas de problème sur yum et au niveau du son) et deux jours à galérer pour résoudre le problème de grub qui était pas dans la mbr, ça marche enfin !

    quand tu as un probleme, c'est pas à moitié

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

Discussions similaires

  1. Probleme compilation en sdl
    Par chlock62 dans le forum SDL
    Réponses: 8
    Dernier message: 06/11/2008, 12h02
  2. Probleme de cross compilation SDL
    Par philou9998 dans le forum SDL
    Réponses: 18
    Dernier message: 20/04/2007, 21h43
  3. [JAR]Probleme compilation avec jdom
    Par ronaldgis dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 04/08/2004, 11h31
  4. probleme compilation classe avec Borland c++ compiler 5.5
    Par softblue dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 17/06/2004, 15h16
  5. [Debian] problème compilation jbuilder 9...
    Par Ancien_Do.Urden dans le forum JBuilder
    Réponses: 5
    Dernier message: 20/03/2004, 15h02

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