lmarin Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 Bonjour , Je suis entrain de me tester au C\C++, histoire de voir les différences avec Java ( que j'adore ). Bref, j'ai trouver un trés bon tuto dans lequel on nous explique qu'on peut loader une image PNG dans une fenetre SDl avec la librairie SDL_image.h J'ai bien inclu cette librairie, et pourtant j'ai cette erreur a la compliation ( je passe par un makefile ) : caisse.o: In function `main': caisse.c:(.text+0xaf): undefined reference to `IMG_Load' collect2: ld a retourné 1 code d'état d'exécution make: *** [caisse] Erreur 1 Voici le code source : /* * Teste d'interfassage graphique */ #include <stdio.h> #include <stdlib.h> #include <SDL/SDL.h> #include <SDL/SDL_image.h> void pause(); int main(int argc, char *argv[] ) { SDL_Surface *ecran = NULL , *imageFond = NULL; SDL_Rect position; if (SDL_Init(SDL_INIT_VIDEO) == 1 ) { fprintf(stderr,"Erreur d'initialisation de la SDL : %s\n",SDL_GetError()); exit(EXIT_FAILURE); } // SDL_WM_SetIcon(SDL_LoadBMP("vidow.bmp"),NULL); // Ouverture de la fenetre ! ecran = SDL_SetVideoMode(640,480,32,SDL_HWSURFACE); SDL_WM_SetCaption("Teste d'interface graphique en C",NULL); SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,10,34,69)); position.x=0; position.y=0; imageFond = IMG_Load("Wall.png"); SDL_BlitSurface(imageFond,NULL,ecran,&position); SDL_Flip(ecran); pause(); SDL_FreeSurface(imageFond); SDL_Quit(); return 0; } void pause(){ int continuer = 1; SDL_Event event; while(continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; } } } Une idée pour me débloquer? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
astero-H Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 Ben d'après le message du compilateur t'as pas inclu la lib qui contient IMG_Load(). Doit surement y avoir une lib style "sdl-image" à inclure en plus de "sdl" étant donné qu'il trouve bien SDL_Init(). Ya quoi dans ton makefile ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 il n'y a pas carrément un outil genre sdl-config qui te renvoit les bon flag à passer à gcc ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 +1 pour le flag en -lmalib ou pour le LD_LIBRARY_PATH à setter correctement avant la compil (ou le /etc/ld.so.conf pour faire propre) Lien vers le commentaire Partager sur d’autres sites More sharing options...
lmarin Posté(e) le 1 juin 2006 Auteur Partager Posté(e) le 1 juin 2006 Pour résoudre mon probleme, j'ai ajouter un paramétre pour le linker ( -lSDL_image ) et le parametre donner par sdl-config cflags pour le compilateur. Et ca marche Nikel ! Merci tous :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.