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

Eclipse C & C++ Discussion :

Erreur "undefined reference to main"


Sujet :

Eclipse C & C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Erreur "undefined reference to main"
    Bonjour,

    Je suis étudiant en GEII, ce qui m'amène à programmer en C.
    Afin de travailler ma programmation en langage C, je me suis acheté un petit Netbook avec Linux dessus.

    J'ai décidé d'installer Eclipse, ce qui je pense était une erreur...
    Lorsque j'essaye de compiler le programme le plus simple du monde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
    #include <string.h>
     
    void main ()
    {
        printf ("eclipse c'est tabou, on en viendra tous à bout");
    }
    Il me sort l'erreur "undefined reference to main", alors j'ai cherché sur Google et notamment dans la FAQ et voilà ce que j'ai trouvé :
    Q:Eclipse me dis "undefined reference to" ou "cannot find -lMyLib" ou encore [insérez ici votre erreur de compilation ou de linkage]. Que dois faire?

    R: Il faut réaliser qu'Eclipse ne fait qu'appeler gcc par l'intérmédiaire d'un makefile, et que si vous avez une erreur c'est que votre code n'est pas correct / ou que le nom des librairies dans vos réglages sont mauvais. L'IDE n'y est pour rien.

    Une bonne chose à faire serait de commencer par un tutorial sur le c++, pour apprendre par exemple la différence entre compilation et linkage.

    Ensuite, si vous utilisez un managed project, modifiez les propriétés de votre projet en conséquence, si vous utilisez un makefile project, modifiez votre makefile en conséquence.
    Mais ça ne résout pas mon problème, que doi-je faire et modifier ?

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    Bonjour,

    Peux-tu nous montrer l'erreur telle qu'elle est générée par le compilateur ?

    T'es en mode managed project ou makefile project ?

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Voici une copie d'écran:


    Dans mon premier programme, j'ai réussi à régler le problème mais je ne sais absolument pas comment j'ai fais...
    Alors j'ai crée un nouveau projet afin de retrouver l'erreur pour savoir comment la régler.

    Comme tu peux le voir, il y a deux erreurs... dont une qui n'a pas lieu d'être (celle du ; ), j'ai du redémarrer Eclipse et recompiler pour l'enlever....

    De plus, je ne vois pas pourquoi je suis obligé (dans mon premier programme) de mettre int main () ? Sous visual C++, lorsque mon main ne retournait pas de valeur c'était void main ()...

    PS : Connaitrais-tu un bon éditeur de texte qui donne quelques couleurs au code sous Linpus ?
    Images attachées Images attachées  

  4. #4
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    Le fait que tu doives mettre int main à la place void main dépend du réglage de ton compilateur (respect des standard), pas d'Eclipse.

    Je veux bien que tu sauvegardes tes fichiers avant que tu compiles et que tu m'envoies un screenshot.

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bon en fait, le problème semble se régler tout seul après avoir redémarré l'ordinateur...
    A chaque fois que j'ai une erreur, je suis obligé de faire un reboot sinon il ne me la corrige pas.

    Je crois que je vais changer de logiciel...

    Merci de ton aide.

  6. #6
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    Tu sais ce qu'on dit à propos des bugs...

    De rien, et bonne chance avec ton nouveau logiciel.

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  7. #7
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 927
    Points : 312
    Points
    312
    Par défaut
    Je sais que le post n'est pas tout jeune, mais ayant le même souci, je suis tombé dessus.

    Et vu que j'ai trouvé, je pense, le pourquoi de la chose, je vous donne "ma" version:

    En fait, lorsqu'on lance la compilation dans Eclipse, il compile uniquement ce qui est sauvegardé. N'ayant pas de message d'avertissement comme quoi il y a eu des modifications, si tu es au tout début de ton projet, tu compiles un fichier vide, donc il ne trouve pas de main.

    Voila si cela peut aider quelqu'un. Il suffit donc de sauvegarder avant la compilation ou trouver une option qui fait ça pour nous dans les options de l'IDE.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/08/2011, 12h25
  2. Réponses: 5
    Dernier message: 27/03/2009, 19h48
  3. Erreur compilation : undefine reference to '_
    Par Darksnakes dans le forum Débuter
    Réponses: 9
    Dernier message: 11/03/2009, 11h49
  4. Réponses: 2
    Dernier message: 27/03/2008, 16h57
  5. Erreur compilation "undefined reference to "
    Par ViRouF dans le forum C++
    Réponses: 5
    Dernier message: 02/03/2007, 14h55

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