Probleme de compilation sous gcc
Résolu
marven23
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
marven23 Messages postés 71 Date d'inscription Statut Membre Dernière intervention -
marven23 Messages postés 71 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voici le message d'erreur lorsque j'essaye de compiler :
marven@marven-desktop:~/Documents/labo/source$ make
gcc -c main.c -o main.o
In file included from main.c:3:
jeu.h:2: erreur: expected «)» before «*» token
qq peut m'aider svp
voici le message d'erreur lorsque j'essaye de compiler :
marven@marven-desktop:~/Documents/labo/source$ make
gcc -c main.c -o main.o
In file included from main.c:3:
jeu.h:2: erreur: expected «)» before «*» token
qq peut m'aider svp
A voir également:
- Probleme de compilation sous gcc
- Breach compilation c'est quoi - Guide
- Comment faire une compilation de musique - Forum Audio
- Problème gcc sous linux - Forum C
- Compilation error: expected unqualified-id before '{' token ✓ - Forum C++
- Compilation gcc avec fonctions pow et sqrt ✓ - Forum Programmation
11 réponses
Salut
Voici le code si vous voulez:
#include <stdio.h>
#include <stdlib.h>
#include "jeu.h"
#include "acceuil.h"
#include "menu.h"
#include "structures.h"
#include "outils.h"
#include "messages.h"
int main(){
//commende retournée
char commende;
//Variables bouléaines
int nouvellePartie = 1;
int sauvegardee = 1;
//L'espace mémoires contenant les différent attributs du jeu chargé
unJeu jeu;
initJeu(&jeu,0);
//Acceuil
acceuil();
MENU:
commende = menu(jeu.typeJeu);
switch (commende) {
case '1':goto JEU;
break;
case '2':goto SAUVEGARDER;
break;
case '3':goto PARTIE_CLASSIQUE;
break;
case '4':goto PARTIE_ACTION;
break;
case '5':goto CHARGER;
break;
case '6':goto MEILLEURS_SCORES;
break;
case '7':goto COMMENT_JOUER;
break;
case '8':goto APROPOS;
break;
case '9':goto QUITTER;
break;
}
//sauvegarder la partie en cour
SAUVEGARDER:
if (sauvegarderJeu(&jeu)) sauvegardee = 1; //La sauvegarde est réussie
goto MENU;
//chargement d'une paritie enregistrée
CHARGER:
if (chargerJeu(&jeu,sauvegardee)){ sauvegardee=1; nouvellePartie=0;}
goto MENU;
//nouvelle partie classique
PARTIE_CLASSIQUE:
if (!sauvegardee) if (!confirmer()) goto MENU ;
initJeu(&jeu,1);
nouvellePartie=1;
goto JEU;
//nouvelle partie action
PARTIE_ACTION:
if (!sauvegardee) if (!confirmer()) goto MENU;
initJeu(&jeu,2);
nouvellePartie=1;
goto JEU;
//Execution du jeu
JEU:
jouer(&jeu,nouvellePartie);
nouvellePartie=0; //la partie n'est plus nouvelle
sauvegardee=0; //le progrés dans le jeu n'est pas encore sauvegardé
goto MENU;
//consulter les meilleurs scores
MEILLEURS_SCORES:
printf("\n\n\t\tSorry! hight scores section is not implemented yet");
getch();
goto MENU;
//consulter l'aide
COMMENT_JOUER:
printf("\n\n\t\tSorry! help is not implemented yet ");
getch();
goto MENU;
//apropos du jeu bejeweled
APROPOS:
printf("\n\n\t\tSorry! apropos is not implemented yet");
getch();
goto MENU;
//quitter le jeu
QUITTER:
if (!sauvegardee){
if (quitter())goto FIN_PROGRAMME;
else goto MENU;
}else goto FIN_PROGRAMME;
FIN_PROGRAMME:
return 0;
}
Voici le code si vous voulez:
#include <stdio.h>
#include <stdlib.h>
#include "jeu.h"
#include "acceuil.h"
#include "menu.h"
#include "structures.h"
#include "outils.h"
#include "messages.h"
int main(){
//commende retournée
char commende;
//Variables bouléaines
int nouvellePartie = 1;
int sauvegardee = 1;
//L'espace mémoires contenant les différent attributs du jeu chargé
unJeu jeu;
initJeu(&jeu,0);
//Acceuil
acceuil();
MENU:
commende = menu(jeu.typeJeu);
switch (commende) {
case '1':goto JEU;
break;
case '2':goto SAUVEGARDER;
break;
case '3':goto PARTIE_CLASSIQUE;
break;
case '4':goto PARTIE_ACTION;
break;
case '5':goto CHARGER;
break;
case '6':goto MEILLEURS_SCORES;
break;
case '7':goto COMMENT_JOUER;
break;
case '8':goto APROPOS;
break;
case '9':goto QUITTER;
break;
}
//sauvegarder la partie en cour
SAUVEGARDER:
if (sauvegarderJeu(&jeu)) sauvegardee = 1; //La sauvegarde est réussie
goto MENU;
//chargement d'une paritie enregistrée
CHARGER:
if (chargerJeu(&jeu,sauvegardee)){ sauvegardee=1; nouvellePartie=0;}
goto MENU;
//nouvelle partie classique
PARTIE_CLASSIQUE:
if (!sauvegardee) if (!confirmer()) goto MENU ;
initJeu(&jeu,1);
nouvellePartie=1;
goto JEU;
//nouvelle partie action
PARTIE_ACTION:
if (!sauvegardee) if (!confirmer()) goto MENU;
initJeu(&jeu,2);
nouvellePartie=1;
goto JEU;
//Execution du jeu
JEU:
jouer(&jeu,nouvellePartie);
nouvellePartie=0; //la partie n'est plus nouvelle
sauvegardee=0; //le progrés dans le jeu n'est pas encore sauvegardé
goto MENU;
//consulter les meilleurs scores
MEILLEURS_SCORES:
printf("\n\n\t\tSorry! hight scores section is not implemented yet");
getch();
goto MENU;
//consulter l'aide
COMMENT_JOUER:
printf("\n\n\t\tSorry! help is not implemented yet ");
getch();
goto MENU;
//apropos du jeu bejeweled
APROPOS:
printf("\n\n\t\tSorry! apropos is not implemented yet");
getch();
goto MENU;
//quitter le jeu
QUITTER:
if (!sauvegardee){
if (quitter())goto FIN_PROGRAMME;
else goto MENU;
}else goto FIN_PROGRAMME;
FIN_PROGRAMME:
return 0;
}
En fait voici le fichier jeu.h , les erreurs sont toujours les mêmes pour chaque prototype de fonction :
void jouer(unJeu * ,int );
int destruction(unJeu*);
void initGrille(unJeu*);
void permut(unJeu*,coords*);
void ranger(unJeu*);
int saisirCoords(coords*,unJeu *);
les erreurs apres l'execution de make:
marven@marven-desktop:~/Documents/labo/source$ make
gcc -c main.c -o main.o
In file included from main.c:3:
jeu.h:1: erreur: expected «)» before «*» token
jeu.h:3: erreur: expected «)» before «*» token
jeu.h:5: erreur: expected «)» before «*» token
jeu.h:7: erreur: expected «)» before «*» token
jeu.h:9: erreur: expected «)» before «*» token
jeu.h:11: erreur: expected «)» before «*» token
make: *** [main.o] Erreur 1
void jouer(unJeu * ,int );
int destruction(unJeu*);
void initGrille(unJeu*);
void permut(unJeu*,coords*);
void ranger(unJeu*);
int saisirCoords(coords*,unJeu *);
les erreurs apres l'execution de make:
marven@marven-desktop:~/Documents/labo/source$ make
gcc -c main.c -o main.o
In file included from main.c:3:
jeu.h:1: erreur: expected «)» before «*» token
jeu.h:3: erreur: expected «)» before «*» token
jeu.h:5: erreur: expected «)» before «*» token
jeu.h:7: erreur: expected «)» before «*» token
jeu.h:9: erreur: expected «)» before «*» token
jeu.h:11: erreur: expected «)» before «*» token
make: *** [main.o] Erreur 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
unJeu est une structure déclarée dans "structures.h" dont j'ai inclut dont jeu.c
dois-je l'inclure aussi dans jeu.h?
pourquoi appeler un fichier .h dans un autre .h?
et si s'est pas déclaré l'erreur deverait etre du jenre "unJeu undeclared first in this function..."
dois-je l'inclure aussi dans jeu.h?
pourquoi appeler un fichier .h dans un autre .h?
et si s'est pas déclaré l'erreur deverait etre du jenre "unJeu undeclared first in this function..."
ça devrais, mais bon, des fois les messages d'erreur sont... obscures.
La règle, c'est déclarer tout type, structure, etc. AVANT de les utiliser.
Donc, si jeu.h utilise des type définis dans structures.h, il faut l'inclure, il en a besoin pour connaitre les tailles des variables etc.
Il ne faut pas oublier qu'un programme C (enfin, plus précisément une unité de compilation) est séquentiel, même en dehors des fonctions : ce que tu écris dépend de ce qu'il y a avant.
La règle, c'est déclarer tout type, structure, etc. AVANT de les utiliser.
Donc, si jeu.h utilise des type définis dans structures.h, il faut l'inclure, il en a besoin pour connaitre les tailles des variables etc.
Il ne faut pas oublier qu'un programme C (enfin, plus précisément une unité de compilation) est séquentiel, même en dehors des fonctions : ce que tu écris dépend de ce qu'il y a avant.
oui oui mais...
Même si j'inclu structures.h l'erreur devient du genre:
structures.h:16: erreur: previous declaration of «unJeu» was here
Vous voyez c pas un probleme de declaration ou d'utilisation...
Le problème que j'ai pas trouvé de solution à cette erreur en recherchant dans google, mais je vais continuer à rechercher...
@plus
Même si j'inclu structures.h l'erreur devient du genre:
structures.h:16: erreur: previous declaration of «unJeu» was here
Vous voyez c pas un probleme de declaration ou d'utilisation...
Le problème que j'ai pas trouvé de solution à cette erreur en recherchant dans google, mais je vais continuer à rechercher...
@plus
Si, l'erreur viens de là !
Mais attention, si tu n'as pas mis de balises de garde dans structures.h, il est possible en effet qu'il râle comme il te le dit.
un fichier .h doit être entouré des balises :
#ifndef BALISE_UNIQUE
#define BALISE_UNIQUE
...
#endif
Ce n'est pas parcequ'il te sort une autre erreur qu'il ne faut pas inclure structures.h dans jeu.h.
Mais attention, si tu n'as pas mis de balises de garde dans structures.h, il est possible en effet qu'il râle comme il te le dit.
un fichier .h doit être entouré des balises :
#ifndef BALISE_UNIQUE
#define BALISE_UNIQUE
...
#endif
Ce n'est pas parcequ'il te sort une autre erreur qu'il ne faut pas inclure structures.h dans jeu.h.
Salut,
En réalité g commencé ce projet avec devcpp sous window et tout était parfait en compilation et en execution (pas mêmes de "warnings"...)
et quand je me suis rendu compte que je dois programmer sous linux comme on a dit les profs, g passé a linux
A savoir que g remplacé toutes les fonctions et les bibliothèques non portables et me voila...
Programmer sous linux c peut etre plus exigent, non?
Ok ,je vais essayer les balises de garde malgré que g programmé en c sous windows sans les utiliser et toujours ça marche tres bien.
@ plus
En réalité g commencé ce projet avec devcpp sous window et tout était parfait en compilation et en execution (pas mêmes de "warnings"...)
et quand je me suis rendu compte que je dois programmer sous linux comme on a dit les profs, g passé a linux
A savoir que g remplacé toutes les fonctions et les bibliothèques non portables et me voila...
Programmer sous linux c peut etre plus exigent, non?
Ok ,je vais essayer les balises de garde malgré que g programmé en c sous windows sans les utiliser et toujours ça marche tres bien.
@ plus