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:
"undefined reference to IMG_Load"
*)Mon code:
Code:
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.