|
|
|
|
Bonjour,
Je suis débutants en progammation... et à la suite d'un essai de compilation, je trouve que mon fichier a quelques erreurs...
Voici en détail :
Ca, c'est mon fichier main.c =
/*
** main.c
**
** Fichier principal.
**
** Rôle:
** - initialisation et libération des bibliothèques.
** - fonction main()
*/
#include "main.h"
int main(int argc, char **argv)
{
return 0;
}
/*
** Initialisation du programme
*/
int Init()
{
SDL_Surface *screen; /* screen pointera vers la surface représentant la fenêtre de l'application */
/* Appel de Free lors de la fermeture du programme */
atexit(Free);
/* Initialisation de SDL */
if(SDL_Init(SDL_INIT_VIDEO)==-1)
{
perror("Impossible d'initialiser SDL.\n");
return 1;
}
/* Initialisation de la fenêtre */
screen = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE|SDL_DOUBLEBUF);
if(screen==NULL)
{
perror("Erreur lors de la création de la fenêtre.\n");
return 1;
}
/* Change le titre de la fenêtre et de l'icône */
SDL_WM_SetCaption("The Life","RPG 2d");
/* Initialisation de FMOD */
if (FSOUND_GetVersion() < FMOD_VERSION)
{
fprintf(stderr, "Mauvaise version de la bibliothèque. Vous devriez utiliser la version %.02f\n", FMOD_VERSION);
exit(1);
}
/*
INITIALIZE
*/
if (!FSOUND_Init(32000, 64, 0))
{
fprintf(stderr,"Erreur à l'initialisation de FMOD: %s\n", FMOD_ErrorString(FSOUND_GetError()));
exit(1);
}
return 0;
}
/*
** Libération du programme
*/
void Free()
{
SDL_Quit();
}
/* ** main.c ** ** Fichier principal. ** ** Rôle: ** - fonction main() ** - initialisation des bibliothèques */ #ifndef MAIN_H #define MAIN_H #include <SDL/sdl.h> #include <FMOD/fmod.h> #include <FMOD/fmod_errors.h> #include <stdio.h> #include <stdlib.h> #endif /* !MAIN_H */
Compilateur: Default compiler Building Makefile: "C:\Documents and Settings\Kevin.SPECHT.000\Bureau\Projet THE LIFE C\Makefile.win" Exécution de make clean rm -f main.o "THE LIFE.exe" gcc.exe -c main.c -o main.o -I"C:/Dev-Cpp/include" main.c: In function `Init': main.c:26: error: `Free' undeclared (first use in this function) main.c:26: error: (Each undeclared identifier is reported only once main.c:26: error: for each function it appears in.) make.exe: *** [main.o] Error 1 Exécution terminée
Configuration: Windows XP Firefox 3.0.6
Merci pour ta réponse...j'ai remplacé
atexit(Free); Par atexit(SDL_Quit); J'ai supprimé : void Free()
{
SDL_Quit();
}
qui déclarait Free !!! Et ça marche mieux !!! Il me reste plus que 1 erreur... Compilateur: Default compiler Building Makefile: "C:\Documents and Settings\Kevin.SPECHT.000\Bureau\Projet THE LIFE C\Makefile.win" Exécution de make... make.exe -f "C:\Documents and Settings\Kevin.SPECHT.000\Bureau\Projet THE LIFE C\Makefile.win" all gcc.exe -c main.c -o main.o -I"C:/Dev-Cpp/include" main.c: In function `Init': main.c:61: error: syntax error at end of input make.exe: *** [main.o] Error 1 Exécution terminée Et l'erreur se trouve dans le : return 0;à la fin du main.c !!! J'essaye de chercher de quoi provient cette erreur, mais je ne vois franchement pas !!! Est-ce que quelqu'un pourrait m'aider ??? SVP Merci d'avance |
Je crois avoir finalement trouver !!! Il me semble que j'ai oublié de mettre une accolade après le return 0; J'ai essayé de le compiler, ça marche mais le logiciel ne reste que quelques instants en marche...faudrait-il changer le type : Vu que j'utilise de la SDL, faudrait-il que je me mette en Win32 GUI ???... Merci d'avance |
Non pas besoin de te mettre en Win32. Je dirais plutôt qu'il faudrait que tu appelles ta fonction Init().
|