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 :

Erreur de compilation avec gcc


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Erreur de compilation avec gcc
    Bonjour à tous,

    mon code est la suivante:

    la fct main():
    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
     
     
    #include <iostream>
    #include <fstream>
    #include <string>
    #include "petrinet.hh"
     
    int main() {
     
      petri_net* n = petri_net::parse("test.net");
     
      if (!n)
        return 1;
        return 0;
    }
    le fichier petri_net.hh est la suivante:
    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
     
     
     
    #ifndef PETRI_NET_HH
    #define PETRI_NET_HH
     
    #include <string>
    #include <list>
    #include <iostream>
    #include <map>
    #include <vector>
     
     
    /// \brief A simple Petri net class.
    class petri_net {
    public:
     
      /// \brief Create a petri net from the file \a file_name.
      ///
      /// Return a null pointer in case of error.
      static petri_net* parse(const char *file_name);
     
      /// \brief Construct an empty petri net.
      petri_net();
     
      };
     
    #endif
    Au compilation j'ai les erreurs suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /tmp/cckDUyZn.o: In function `main':
    main.cpp:(.text+0x195): undefined reference to `petri_net::parse(char const*)'
    collect2: ld returned 1 exit status
    PS: la commande de compilation est: g++ -o parse main.cpp

    Est ce que qq1 a fixé l'erreur?

    et je vous remercie de votre réponse.

  2. #2
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 896
    Points : 1 912
    Points
    1 912
    Par défaut
    Déclarer n'est pas définir ! Où est le fichier petri_net.cpp dans lequel tu définies la méthode petri_net::parse ?

    Edit : Quoique ça a l'air d'être une erreur de compilation et non une erreur de link.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    voila la classe petri_net (fichier petrinet.cpp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <cassert>
    #include <sstream>
    #include <iostream>
    #include "petrinet.hh"
     
     
    petri_net::petri_net() {
    }
     
    petri_net* petri_net::parse(const char *f) {
      FILE fg=fopen(f, "r");
            return NULL;
    }

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par KINGINFO Voir le message
    Au compilation j'ai les erreurs suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /tmp/cckDUyZn.o: In function `main':
    main.cpp:(.text+0x195): undefined reference to `petri_net::parse(char const*)'
    collect2: ld returned 1 exit status
    Citation Envoyé par Noxen Voir le message
    Edit : Quoique ça a l'air d'être une erreur de compilation et non une erreur de link.
    Non, non, c'est bien une erreur de link

    Tu es bien sûr de linker ensemble les 2 fichiers objet petri_net.o et main.o parce que sinon, je ne voie pas.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    mais j'ai pas les 2 fichiers main.o et petrinet.o si la compilation ça marche pas.

  6. #6
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 896
    Points : 1 912
    Points
    1 912
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Non, non, c'est bien une erreur de link
    Hum oui, effectivement, j'ai lu la ligne de commande à la va-vite et ça m'a induit en erreur.

    D'ailleurs, est-ce-que ça ne devrait pas être "g++ -o parse main.cpp petrinet.cpp" plutôt que "g++ -o parse main.cpp" ?

    J'utilise en général un IDE alors je manque un peu d'habitude avec les lignes de commande. Mais je crois qu'en cours j'aurais fait quelque chose comme ça:
    g++ -c petrinet.cpp -o petrinet.o
    g++ -c main.cpp -o main.o
    g++ petrinet.o main.o -o parse

    Je suppose que l'autre ligne de commande est équivalente, si ce n'est que l'on n'indique pas spécifiquement le nom des fichiers objet intermédiaire (me trompe-je ?).

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Merci mon ami,
    tt ça marche bien.$

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreurs de compilation avec MinGW GCC 4.4
    Par DarkVenoM dans le forum C++
    Réponses: 5
    Dernier message: 06/02/2011, 04h01
  2. erreur de compilation avec gcc
    Par boudjema.m dans le forum C
    Réponses: 1
    Dernier message: 15/04/2010, 16h02
  3. Erreur de compilation avec GCC
    Par Neuromancien2 dans le forum C
    Réponses: 7
    Dernier message: 20/08/2007, 09h54
  4. compilation avec gcc: erreur inhabituelle
    Par artatum dans le forum C
    Réponses: 4
    Dernier message: 12/10/2005, 17h13
  5. compilation avec gcc : erreurs bizard !!!
    Par CodeurNé dans le forum C
    Réponses: 2
    Dernier message: 23/09/2005, 18h09

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