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 :

Probleme soudain de compilation


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut Probleme soudain de compilation
    Bonjour,

    Voila hier j'ai crée deux petites classes que je compilais sans souci....
    Aujourd'hui apres avoir fais quelques modifs qd j'ai voulu recompiler j'ai une liste monstrueuse d'erreurs qui apparait!! J'ai voulu retourner en arriere et reprendre le même code qu'hier mais j'ai tj ces erreurs...

    Pour info en voici la liste :
    [delphine@matisse prog]$ g++ -o bioseq.o bioseq.cc
    In file included from bioseq.cc:1:
    bioseq.h:5: error: parse error before `{' token
    bioseq.h:9: error: parse error before `public'
    bioseq.h:11: warning: ISO C++ forbids declaration of `bioseq' with no type
    bioseq.h:12: error: destructors must be member functions
    bioseq.h:20: error: parse error before `}' token
    bioseq.cc:5: error: syntax error before `::' token
    bioseq.cc:10: error: syntax error before `::' token
    bioseq.cc:13: warning: ISO C++ forbids declaration of `seq' with no type
    bioseq.cc:13: error: conflicting types for `int seq'
    bioseq.h:8: error: previous declaration as `std::string seq'
    bioseq.cc:14: error: parse error before `}' token
    bioseq.cc:16: error: syntax error before `::' token
    bioseq.cc:18: warning: ISO C++ forbids declaration of `seq' with no type
    bioseq.cc:18: error: redefinition of `int seq'
    bioseq.cc:13: error: `int seq' previously defined here
    bioseq.cc:18: error: `s' was not declared in this scope
    bioseq.cc:19: error: parse error before `}' token
    bioseq.cc:21: error: syntax error before `::' token
    bioseq.cc:25: error: syntax error before `::' token
    bioseq.cc:29: error: syntax error before `::' token
    bioseq.cc:33: error: syntax error before `::' token
    bioseq.cc:37: error: syntax error before `::' token
    bioseq.cc:41: error: syntax error before `::' token
    bioseq.cc:48: error: parse error before `while'
    J'ai une erreur a chaque ligne... on dirait bien que mon compilo ne sait plus ce qu'est du C++

    Si vous avez une suggestion à ce qui a bien pu se passer je suis preneuse!
    Merci

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Peux-tu mettre ton code en ligne s'il te plait ?
    K

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Oui...Pas de probleme...
    le .h :
    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
    #include <string>
    using namespace std;
     
    Class bioseq 
    {
     protected :
      string header ;
      string seq ;
     public :
      bioseq(void);
      bioseq(string,string);
      ~bioseq(void);
      string getHeader(void);
      void setHeader(string);
      string getSeq(void);
      void setSequence(string);
      int length(void);
      void loadFile(const char*);
     
    };
    le.cc :
    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
    #include "bioseq.h"
    #include <iostream>
    #include <fstream>
     
    int bioseq::length(void)
    {
      return seq.size();
    }
     
    bioseq::bioseq(void)
    {
      header ="";
      seq ="";
    }
     
    bioseq::bioseq(string h, string s){
      header = h;
      seq = s ;
    }
     
    bioseq::~bioseq(void){
     
    }
     
    string bioseq::getHeader(void){
      return header;
    }
     
    void bioseq::setHeader(string s){
      header = s;
    }
     
    string bioseq::getSeq(void){
      return seq;
    }
     
    void bioseq::setSequence(string s){
      seq = s;
    }
     
    void bioseq::loadFile(const char* filename)
    {
      ifstream file(filename);
      if(file)
      {
        getline(file, header);
        string line;
        while(getline(file,line))
          {
    	seq = seq +line;
          }
     
      }
     
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Points : 473
    Points
    473
    Par défaut
    essaie 'Class biosec' avec un 'c' minuscule, ligne 4

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    tu es sur qu'il y a un C majuscule à Class? Il me semble que ça s'écrit tout en minuscules...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Petite remarque sur le code : il ne faut pas mettre de "using namespace" dans les .h:
    http://c.developpez.com/faq/cpp/?pag...sing_namespace
    tu peux le mettre dans le .cc, mais dans le .h, il vaut mieux préfixer toutes tes string par "std::".

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Merci!!!!

    Alors la je crois qu'il est temps pour moi de prendre du repos... Je ne me rappelle absolument pas avoir touché à cet endroit du code et encore moins de m'être amusée a mettre des majuscules a Class!!
    je crois bien que je deviens folle !

  8. #8
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut


    Aurais-tu recemment fait du Java ?
    K

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include "bioseq.h" 
    #include <iostream> 
    #include <fstream>
    Petite remarque : mieux vaut mettre tes .h en dernier dans ta liste d'include.
    En effet, si jamais tu as une erreur de syntaxe dans un .h telle qu'un ';' manquant, tu vas te paner masse d'erreurs dans les includes suivants (ici iostream et fstream), ce qui peut parfois être déroutant lorsque l'on recherche son erreur

  10. #10
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Citation Envoyé par Enola
    Petite remarque : mieux vaut mettre tes .h en dernier dans ta liste d'include.
    En effet, si jamais tu as une erreur de syntaxe dans un .h telle qu'un ';' manquant, tu vas te paner masse d'erreurs dans les includes suivants (ici iostream et fstream), ce qui peut parfois être déroutant lorsque l'on recherche son erreur
    C'est cool comme astuce, merci de l'avoir partagé
    K

  11. #11
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Moi j'ai une astuce inverse : Il vaut mieux dans un .cpp avoir le .h correspondant en tout premier. L'idée est qu'inclure n'importe quel .h doit pouvoir se faire sans avoir inclus rien d'autre avant.

    Le seul moyen de vérifier que c'est le cas, est de tester. Pour tester ça, il faut un fichier par test. Et quel meilleur endroit pour tester ça que dans le .cpp correspondant ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

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

Discussions similaires

  1. [deb]Probleme a la compil
    Par Marc_3 dans le forum C++
    Réponses: 8
    Dernier message: 30/11/2005, 18h46
  2. [debutant]probleme cast et compilation
    Par Battosaiii dans le forum C
    Réponses: 7
    Dernier message: 31/10/2005, 20h00
  3. Problème X après compilation noyau 2.6.13.2
    Par nicodeme dans le forum Applications et environnements graphiques
    Réponses: 9
    Dernier message: 08/10/2005, 14h41
  4. [debutant] probleme a la compilation
    Par jay-hut dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 13/12/2004, 17h30
  5. [NetBeans] [Ant] Problème à la compil'
    Par GLDavid dans le forum NetBeans
    Réponses: 2
    Dernier message: 05/07/2004, 21h10

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