IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Des erreurs de compilation.comment corriger?


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Par défaut Des erreurs de compilation.comment corriger?
    bonjours a tous.

    je sollicite votre aide pour les erreurs de compilation d'un programme.
    je vous explique ce que j'attend de mon programme et quels sont les erreurs qu'il affiche.

    en effet je dois creer une boite de deux dimensions dans le quels je dois mettre des serpents et les mettre en mouvement en leur donnant une direstion(N,S,SE,.........)chacun es ses serpents se caracterise par sa couleur ,sa direction,une duree de vie et une taille.la couleur(parmi une 15 de couleurs presentent dans "gestion_ecran") et la taille (entre 5 et 8 elements)du serpent sont choisi de facon aléatoire.
    Le corps du serpent est représenté par differantes characters ASCII.

    pour la resolution du probleme j'ai creer le tableau et les structures nécessaires a la resolution du probleme
    en voici mon travail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    #include "aleatoire.h"
    #include<stdio.h>
    #include<stdlib.h>
    #include "gestion_ecran.h"
     
    #define l 50
    #define c 80
     
    void initAlea (void);
     
    /*declarations des structures*/
     
    typedef struct corpselement{
     
            struct corpselement *suivant;/*pointeur vers prochain element de la liste*/
    		int posX  ;
    		int posY ;/*definie la position de l'élément dans la grille*/
     
    } corpselement ;
     
    corpselement *nouveau_corpselement;
    corpselement *element_courant;
     
    typedef enum direction{
     
    	O,N,NE,E,SE,S,SO,NO
     
    } direction;
     
     
    typedef struct serpent{
     
    	enum direction *dir;
    	struct corpselement *corps;
    	int dureevie; 
    	int couleur;
    	int taille;
    } serpent;
     
    serpent *pt;
     
    /*Declaration du tableau*/
    typedef struct{
           char tableau[l][c];
           int couleur[l][c];
    }Tableau ;
     
     
    /*construction du tableau*/
     
    /*affichage du tableau*/
     
    void affichertableau ( Tableau *tab )
    {
         int i,j;
               for( i=0 ; i<l ; i++){
                    for( j=0 ; j<c ;j++){
               setColor(tab->couleur[i][j]);
               put2XY(i+1 , j+1 , tab->tableau[i][j]);
                          }
            }
            setColor(0);
    }
    j'ai d'abord complier grace a GCC en tapant dans le fenetre:gcc serpent.c -o serpent et ensuite serpent.il n'y aucune erreur d'afficher mais il m'indique que le fichier est introuvable;

    du coup j'ai telecharger devC++ et voici les erreurs qu'il m'indique apres compilation:

    [Linker error] undefined reference to `WinMain@16'
    ld returned 1 exit status

    je n'y comprend rien,j'espere avoir éte precis et j'aimerai que vous m'aidiez parceque je suis bloqué.j'aimerai seulement qu'a ce stade de mon travaille un tableau de 2D soit afficher.

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Salut et bienvenue sur les forums de developpez.com


    Déjà pour commencer:

    Ensuite, le code que tu as fournit ici, c'est le source de ton main.c ? Si c'est le cas, où se trouve la fonction main ? C'est quand même l'entrée obligatoire du programme donc si tu ne l'as pas ....

    Le mieux serais encore, si tu possède plusieurs fichiers, que tu zip le tout et que tu mettes en pièce jointe dans ton post
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Je te suggère plutôt de faire un exemple minimum complet reproduisant le problème. Donc en virant tout ce qui n'est pas significatif. Normalement, une fois fait, tu as une meilleure idée du problème, et il n'est pas impossible que tu trouves la solution tout seul.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Bonjour,

    Citation Envoyé par Snopy
    j'ai d'abord complier grace a GCC en tapant dans le fenetre:gcc serpent.c -o serpent et ensuite serpent.il n'y aucune erreur d'afficher mais il m'indique que le fichier est introuvable;
    Si tu as essayé sous un unixoïde, essaye "./serpent" (sans les guillemets).
    Si tu es sous Windows, vérifies qu'un fichier a bien été créé par gcc (normalement, si gcc n'affiche aucune erreur cela doit être le cas). Si oui, alors vérifies si il porte bien l'extension ".exe". Si non : compile avec "gcc serpent.c -o serpent.exe" (sans les guillemets) et lance le programme en tapant "serpent" ou "serpent.exe".

    Citation Envoyé par Snopy
    du coup j'ai telecharger devC++ et voici les erreurs qu'il m'indique apres compilation:

    [Linker error] undefined reference to `WinMain@16'
    ld returned 1 exit status
    Deux causes possibles :
    - soit, comme l'a dit Franck, il manque la fonction principale ("main" ou "WinMain") ;
    - soit tu as compilé un programme console comme un programme "fenêtré".
    Dans le second cas, sélectionnes "Console" dans les propriétés de ton projet (cela fait partie des choix proposés losque tu crées un projet avec Dev-C++).

    Pour ce qui est du code : nous ne sommes pas devins donc ne t'attends pas à des commentaires le concernant si tu n'en donnes qu'une petite partie.

    Cordialement,
    DS.

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Snopy
    je sollicite votre aide pour les erreurs de compilation d'un programme.
    je vous explique ce que j'attend de mon programme et quels sont les erreurs qu'il affiche.
    Je voudrais bien t'aider, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:1:23: aleatoire.h: No such file or directory
    main.c:4:27: gestion_ecran.h: No such file or directory
    main.c: In function `affichertableau':
    main.c:58: warning: implicit declaration of function `setColor'
    main.c:59: warning: implicit declaration of function `put2XY'
    main.c:63:2: warning: no newline at end of file
    Process terminated with status 1 (0 minutes, 1 seconds)
    2 errors, 3 warnings
    Désolé, mais ma boule de cristal est au lavage. Je ne peux donc pas deviner ce qu'il y a des les 2 fichiers manquants.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Je te suggère plutôt de faire un exemple minimum complet reproduisant le problème. Donc en virant tout ce qui n'est pas significatif. Normalement, une fois fait, tu as une meilleure idée du problème, et il n'est pas impossible que tu trouves la solution tout seul.
    +1

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Par défaut
    bonjours

    merci a tous pour vos conseils,mais mon prob de compilation n'est toujours pa résolue.

    en effet j'ai creer comme vous l'avez dit la fonction main ,maintenant c bon ,il n'ya aucune erreur de compilation mais je n'arrrive toujours pa a executer le fichier.en dev++ j'ai abandoné parceque quand je fais exécuter,la fenetre d'execution s'ouvre et se referme sans que j'ai le temps de faire qqlch.


    j'ai decidé d'utiliser le console sous Linux(c ce qu j'utilise le plus dans les Tp )
    voici ce que je fais:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [localhost ~]$ cd
    [localhost ~]$ ls
    amsn_received/  cheval.c~  Desktop/    Images/   Téléchargement/
    cheval*         cheval.o   Documents/  info/     tmp/
    cheval.c        chiffre.c  dsdsd.doc   Musique/  Vidéo/
    [localhost ~]$ cd Documents
    [localhost Documents]$ ls
    aleatoire.h      info/     nouveau.c   nouveau.exe*  parfait.c
    gestion_ecran.h  nouveau*  nouveau.c~  parfait*      parfait.c~
    [localhost Documents]$ gcc nouveau.c -o nouveau
    [localhost Documents]$ nouveau
    bash: nouveau: command not found
    [localhost Documents]$ gcc nouveau.c -o nouveau.exe
    [localhost Documents]$ nouveau.exe
    bash: nouveau.exe: command not found
    [localhost Documents]$
    je n'y comprend rien,je suis décourager.deja que le prob est complexe ,en plus si je n'arrive pas a compiler,je risque de ne pas m'en sortir.

    ma question:es ce qu'il faut installer le compilteur gcc??peut-etre que c ca qui est l'origine de mon prob

    pour emmanuel:

    si je n'ai pas donner les fichiers gestion ecran.h et aleatoir.h .c'est parceque je ne pensai pas que ce serai utile.si tu est interrsessé les voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    /*aleatoire.h*/
    #ifndef _ALEATOIRE_H_
    #define _ALEATOIRE_H_
    
    void initAlea (void);
    /* initialise le generateur aleatoire (a partir de l'horloge) */
    
    int aleaInt (int n);
    /* renvoie un nombre aleatoire entre 1 et n (inclus) */
    
    #endif
    
    /*"gestion_ecran.h"*/
    #ifndef _GESTION_ECRAN_
    #define _GESTION_ECRAN_
    
    #define BACK 0
    #define CYAN  1
    #define BLUE  2
    #define GREEN  3
    #define RED 4
    #define YELLOW  5
    #define BLACK 6
    #define BRIGHT_BLUE 7
    #define BRIGHT_CYAN 8
    #define BRIGHT_GREEN 9
    #define BRIGHT_RED 10
    #define BROWN 11
    #define DARK_GRAY 12
    #define LIGHT_GRAY 13
    #define MAGENTA 14
    #define PURPLE 15
    #define WHITE 16
    
    char * COLORS[17] =
      {"\x1b[0m","\x1b[36m","\x1b[1;34m","\x1b[32m","\x1b[1;31m",
       "\x1b[1;33m","\x1b[30m","\x1b[34;1m","\x1b[36;1m","\x1b[32;1m",
       "\x1b[31;1m","\x1b[33m","\x1b[30;1m","\x1b[37m","\x1b[35m",
       "\x1b[35;1m","\x1b[37;1m"
       };
    
    #define gotoXY(x,y) printf ("\x1b[%d;%dH",(int)x,(int)y)
    #define put2XY(x,y,c) gotoXY(x,y),putchar(c)
    #define setColor(c) printf("%s", COLORS[c]);
    #endif
    merci encore

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Snopy
    en effet j'ai creer comme vous l'avez dit la fonction main
    OK. Il y a quoi dedans ? Tu ne peux pas poster tout ton code d'un coup ? C'est fatiguant d'avoir à demander sans arrêt. Tu veux de l'aide ou quoi ?

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Bonjour,

    Citation Envoyé par Snopy
    merci a tous pour vos conseils,mais mon prob de compilation n'est toujours pa résolue.
    Est-ce vraiment seulement un problème de compilation ?
    Voyons cela...

    Citation Envoyé par Snopy
    j'ai decidé d'utiliser le console sous Linux(c ce qu j'utilise le plus dans les Tp )
    voici ce que je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [...]
    [localhost Documents]$ gcc nouveau.c -o nouveau
    [localhost Documents]$ nouveau
    bash: nouveau: command not found
    [localhost Documents]$ gcc nouveau.c -o nouveau.exe
    [localhost Documents]$ nouveau.exe
    bash: nouveau.exe: command not found
    [localhost Documents]$
    je n'y comprend rien
    Ca ne m'étonne pas.
    Si tu commençais par lire ce qu'on prend le temps d'écrire pour toi, ça irait probablement un peu mieux.
    Revenons en arrière :
    Citation Envoyé par David.Schris
    Si tu as essayé sous un unixoïde, essaye "./serpent" (sans les guillemets).
    Dans ton dernier exemple, le nom de l'exécutable a changé alors rectifions :

    Si tu as essayé sous un unixoïde, essaye "./nouveau" (sans les guillemets).

    Cordialement,
    DS.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Par défaut
    salut

    emmanuel je vous demande juste de reoudre mon probleme de complitation et ne pas de resoudre le prob.Alors je te te poste que ce qui est nécessaire.A part ca j'ai deja essayé avec./nouveau,je suis pas bete.ca n'a pas marché,c'est pas parceque cela n'apparait pas dans la fenetre que je t'ai envoyé et je l'ai pas fais.

    et si c'est pour me casser a chaque fois.merci sans facon,je passerai de ton aide.

    pour les autres qui m'ont aidé merci encore

  11. #11
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Citation Envoyé par Snopy
    salut

    c'est pas parceque cela n'apparait pas dans la fenetre que je t'ai envoyé que je l'ai pas fais.
    Ceci n'est pas évident : les seules informations visibles pour les posteurs sont celles que tu mets dans tes posts.

    Pour essayer de résoudre ton problème, l'idéal est de poster le code minimal qui reproduise le problème. Par "code minimal", nous entendons le code le plus court possible, mais compialble, qui reproduise le problème.
    Ce code doit comporter tout ce qui est nécessaire : inclusion des fichiers d'en-têtes, fonction main, ...


    Si tu n'arrives pas à trouver le code minimal qui reproduise le problème, créé une archive (par exemple un fichier zip) contenant tous les fichiers qui composent ton projet (les .c, mais aussi les .h).

    A partir de ces informations, et seulement à partir de cela, il est possible de commencer à trouver une solution à ton problème.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Ne pas lancer l'execution s'il y a des erreurs de compilation
    Par titan_33 dans le forum Visual Studio
    Réponses: 2
    Dernier message: 21/10/2011, 14h41
  2. Des erreurs de compilation étrange
    Par Invité dans le forum C++
    Réponses: 5
    Dernier message: 27/12/2010, 17h04
  3. Réponses: 7
    Dernier message: 14/04/2008, 17h13
  4. Réponses: 5
    Dernier message: 06/09/2007, 09h49
  5. [Système] [debug] Détection des erreurs de compil
    Par Herode dans le forum Langage
    Réponses: 3
    Dernier message: 28/11/2006, 13h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo