+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Invité de passage
    Inscrit en
    février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 3
    Points : 0
    Points
    0

    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 :
    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 chevronné
    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 : 780
    Points
    780

    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
    Invité de passage
    Inscrit en
    février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 3
    Points : 0
    Points
    0

    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 chevronné
    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 : 780
    Points
    780

    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
    Invité de passage
    Inscrit en
    février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : février 2009
    Messages : 3
    Points : 0
    Points
    0

    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 chevronné
    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 : 780
    Points
    780

    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 actif Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    septembre 2008
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : septembre 2008
    Messages : 614
    Points : 187
    Points
    187

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •