Erreur quelque part ... C+ avec Dev

Résolu/Fermé
Crack44 Messages postés 81 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 19 novembre 2008 - 4 nov. 2008 à 01:26
Crack44 Messages postés 81 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 19 novembre 2008 - 4 nov. 2008 à 13:21
SAlut tout le monde !

#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
#include <fmod.h>
#include <SDL/SDL_image.h>

int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *pochette = NULL;
SDL_Event event;
SDL_Rect position;
int continuer = 1;
FSOUND_STREAM *musique = NULL;

FSOUND_Init(44100, 32, 0);
musique = FSOUND_Stream_Open("son.mp3", FSOUND_LOOP_NORMAL, 0, 0); /* On ouvre la musique */
if (musique == NULL) /* On vérifie si elle a bien été ouverte (IMPORTANT) */
{
fprintf(stderr, "Impossible de lire son.mp3\n");
exit(EXIT_FAILURE);
}

FSOUND_Stream_SetLoopCount(musique, -1); /* On active la répétition de la musique à l'infini */
FSOUND_Stream_Play(FSOUND_FREE, musique); /* On joue la musique */

SDL_Init(SDL_INIT_VIDEO);


ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_WM_SetCaption("Gestion du son avec FMOD", NULL);
pochette = IMG_Load("image.jpg");
position.x = 0;
position.y = 0;


while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
case SDL_KEYDOWN:
if (event.key.keysym.sym == SDLK_p) //Si on appuie sur P
{
if (FSOUND_GetPaused(1)) // Si la chanson est en pause (sur le canal 1)
FSOUND_SetPaused(1, 0); // On enlève la pause
else // Sinon, elle est en cours de lecture
FSOUND_SetPaused(1, 1); // On active la pause
}
break;
}

SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
SDL_BlitSurface(pochette, NULL, ecran, &position);
SDL_Flip(ecran);
}

FSOUND_Stream_Close(musique); /* On libère la mémoire */
FSOUND_Close();

SDL_FreeSurface(pochette);
SDL_Quit();

return EXIT_SUCCESS;
}




Building Makefile: "C:\DOCUME~1\Psname\MESDOC~1\MESEBO~1\moi\TEst\Makefile.win"
Exécution de make...
make.exe -f "C:\DOCUME~1\CrAcK\MESDOC~1\MESEBO~1\moi\TEst\Makefile.win" all
g++.exe main.o -o "Projet1.exe" -L"lib" -lmingw32 -lSDLmain -lSDL

main.o(.text+0x3a):main.cpp: undefined reference to `FSOUND_Init@12'

main.o(.text+0x61):main.cpp: undefined reference to `FSOUND_Stream_Open@16'
main.o(.text+0xa4):main.cpp: undefined reference to `FSOUND_Stream_SetLoopCount@8'
main.o(.text+0xba):main.cpp: undefined reference to `FSOUND_Stream_Play@8'
main.o(.text+0x110):main.cpp: undefined reference to `IMG_Load'
main.o(.text+0x164):main.cpp: undefined reference to `FSOUND_GetPaused@4'
main.o(.text+0x17f):main.cpp: undefined reference to `FSOUND_SetPaused@8'
main.o(.text+0x198):main.cpp: undefined reference to `FSOUND_SetPaused@8'
main.o(.text+0x214):main.cpp: undefined reference to `FSOUND_Stream_Close@4'
main.o(.text+0x21c):main.cpp: undefined reference to `FSOUND_Close@0'
collect2: ld returned 1 exit status

make.exe: *** [Projet1.exe] Error 1

Exécution terminée



hum ... je ne sais pas se que j'ai fait mais sa marche pas !
A voir également:

2 réponses

mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
4 nov. 2008 à 02:11
Tu as dû oublier de mettre dans tes options de linkage (-l ou -L) la librairie qui implémente les FSOUND.

Bonne chance
0
Crack44 Messages postés 81 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 19 novembre 2008 1
4 nov. 2008 à 13:21
Si vous êtes sous Code::Blocks par exemple, allez dans le menu Projects / Build options. Dans l'onglet Linker, cliquez sur le bouton "Add" et indiquez où se trouve le fichier SDL_image.lib



en gros je devais rajouté ou etait le SDL_image.DLL et il la trouvé maintenan sa marche

c'est super cooooool =D
0