Problème de compilation avec dev-c++ !!!
Résolu
KevinIllusion
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
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 =
Et ça, c'est mon main.h =
Et après une tentative de compilation, voici mes erreurs :
Merci d'avance
KevinIllusion
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(); }
Et ça, c'est mon main.h =
/* ** 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 */
Et après une tentative de compilation, voici mes erreurs :
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
Merci d'avance
KevinIllusion
A voir également:
- Problème de compilation avec dev-c++ !!!
- Dev c++ - Télécharger - Langages
- Massgrave dev - Accueil - Windows
- Dev home. - Télécharger - Développement
- Dev pascal - Télécharger - Édition & Programmation
- Codeblocks avec compilateur - Télécharger - Langages
4 réponses
Salut,
main.c:26: error: `Free' undeclared (first use in this function)
Ce qui doit pointer vers : atexit(Free);
Et en effet Free n'est pas déclaré. D'où le problème.
Ne serait-ce pas plutôt : atexit(SDL_Quit); ?
main.c:26: error: `Free' undeclared (first use in this function)
Ce qui doit pointer vers : atexit(Free);
Et en effet Free n'est pas déclaré. D'où le problème.
Ne serait-ce pas plutôt : atexit(SDL_Quit); ?
Merci pour ta réponse...j'ai remplacé
Par
J'ai supprimé :
qui déclarait Free !!!
Et ça marche mieux !!! Il me reste plus que 1 erreur...
Et l'erreur se trouve dans le :
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
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
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
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().
Car là, le programme rentre dans le main, et il quitte aussitôt avec ton return 0.
Effectue aussi après l'appel à Init() dans ton main, une fonction d'attente pour éviter que le programme quitte juste après. Par exemple un petit getchar() ou mieux une fonction d'attenteTouche en SDL.
Car là, le programme rentre dans le main, et il quitte aussitôt avec ton return 0.
Effectue aussi après l'appel à Init() dans ton main, une fonction d'attente pour éviter que le programme quitte juste après. Par exemple un petit getchar() ou mieux une fonction d'attenteTouche en SDL.