Téléchargement
illégal
Posez votre question Signaler

Probleme de compilation sous gcc [Résolu]

marven23 69Messages postés 11 juillet 2009Date d'inscription 16 mars 2011Dernière intervention - Dernière réponse le 23 juil. 2009 à 16:28
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
Lire la suite 

Probleme de compilation sous gcc »

11 réponses
Réponse
+0
moins plus
donne le fichier main.c, sinon, ça va être dur.
Ajouter un commentaire
Réponse
+0
moins plus
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;

}
Ajouter un commentaire
Réponse
+0
moins plus
Au temps pour moi, c'était jeu.h qu'il fallait.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Normal, "unJeu" n'est pas défini.
C'est quoi comme variable ?
Ajouter un commentaire
Réponse
+0
moins plus
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..."
Ajouter un commentaire
Réponse
+0
moins plus
ç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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins 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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Salutation Char Snipeur
Enfin j'arrive :-)
Vraiment les balises de garde ont résolu le problème
Merci infiniment et @plus
Ajouter un commentaire
Ce document intitulé « probleme de compilation sous gcc » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?