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 compilation: fichiers Include trop nombreux


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2005
    Messages : 61
    Points : 27
    Points
    27
    Par défaut Erreur compilation: fichiers Include trop nombreux
    bon voila.. j'essai de compiler un exemple tiré du livre La Bible C++ sous visual studio, j'utilise le code d'origine sans aucune modification et ca me donne cette erreur

    1>main.cpp
    1>c:\documents and settings\pierrick charlebois\mes documents\visual studio 2005\projects\testbible\testbible\ccc_shap.h(3) : fatal error C1014: fichiers Include trop nombreux : profondeur = 1024

    voici les code source

    main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include "ccc_win.h"
     
    int ccc_win_main()
    {  
       Point p(1, 3);
       cwin << p << Circle(p, 2.5);
     
       return 0;
    }
    ccc_win.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
    21
    22
    23
    24
     
    #include "ccc_shap.h"
     
    #if defined(_MSC_VER)
       #define CCC_MSW
    #endif
    #if defined(_WINDOWS_) || defined (_Windows) || defined(WINVER) || defined(__WIN32__)
       #define CCC_MSW
    #endif
    #if defined(__GNUC__) && !defined(CCC_MSW)
       #define CCC_X11
    #endif
     
    #if defined(CCC_ASC)
    #include "ccc_asc.h"
    #elif defined(CCC_WXW)
    #include "ccc_wxw.h"
    #elif defined(CCC_X11)
    #include "ccc_x11.h"
    #elif defined(CCC_MSW)
    #include "ccc_msw.h"
    #else
    #include "ccc_asc.h"
    #endif
    ccc_shap.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
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    #include <cstdio>
     
    #include "ccc_shap.h"
     
    Point::Point()
    {  
       x = 0.0;
       y = 0.0;
    }
     
    Point::Point(double x1, double y1)
    {  
       x = x1;
       y = y1;
    }
     
    double Point::get_x() const
    {  
       return x;
    }
     
    double Point::get_y() const
    {  
       return y;
    }
     
    void Point::move(double dx, double dy)
    {  
       x += dx;
       y += dy;
    }
     
    /*-------------------------------------------------------------------------*/
     
    Circle::Circle()
    {  
       radius = 0.0;
    }
     
    Circle::Circle(Point p, double r)
    {  
       center = p;
       radius = r;
    }
     
    Point Circle::get_center() const
    {  
       return center;
    }
     
    double Circle::get_radius() const
    {  
       return radius;
    }
     
    void Circle::move(double dx, double dy)
    {  
       center.move(dx, dy);
    }
     
    /*-------------------------------------------------------------------------*/
     
    Line::Line()
    {
    }
     
    Line::Line(Point p1, Point p2)
    {  
       from = p1;
       to = p2;
    }
     
    Point Line::get_start() const
    {  
       return from;
    }
     
    Point Line::get_end() const
    {  
       return to;
    }
     
    void Line::move(double dx, double dy)
    {  
       from.move(dx, dy);
       to.move(dx, dy);
    }
     
    /*-------------------------------------------------------------------------*/
     
    Message::Message()
    {}
     
    Message::Message(Point s, const string& m)
    {  
       start = s;
       text = m;
    }
     
    Message::Message(Point s, double x)
    {  
       start = s;
       char buf[20];
       sprintf(buf, "%g", x);
       text = buf;
    }
     
     
    Point Message::get_start() const
    {  
       return start;
    }
     
    string Message::get_text() const
    {  
       return text;
    }
     
    void Message::move(double dx, double dy)
    {  
       start.move(dx, dy);
    }
    je ne comprend pas vraiment... pourquoi il y aurais "trop" d'include ???

    merci pour toute réponse

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    include récursif dans ccc_shap.h

    Il est indispensable de toujours mettre des gardes pour éviter les includes récursifs.

    la garde que j'utilise moi donnerai ça pour ton .h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    #ifndef CCC_SHAP_H_
    # define CCC_SHAP_H_
     
    // code
     
    #endif
    cherche dans le forum pour plus d'infos la dessus

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2005
    Messages : 61
    Points : 27
    Points
    27
    Par défaut
    j'ai peut etre mal utilisé ce bout de code mais sa me donne la meme erreur... je vais rechercher un peut ladessu..

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    j'ai peut etre pas été clair, désolé :

    dans ton fichier ccc_shap.h tu fais #include "ccc_shap.h" donc il va s'inclure récursivement de manière infinie, d'où l'erreur.

    tu as peut etre mis ça dans d'autres endroits.

    la garde est juste une précaution, mais je ne pense pas que ça soit un blindage.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2005
    Messages : 61
    Points : 27
    Points
    27
    Par défaut
    je crois encore moin comprendre.... j'ai essayer d'enlever cet include, j'ai essayer l'include + ton code, et j'ai essayer ton code seul a la place du include, rien ne marche, et c'est un peut bébé, mais je tien a préciser que ce n'est pas MON include en théorie.. mais celui du bouquin je n'ai rien fait ladedan moi, j'essai juste de le compiler

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    as tu remarqué que ccc_shap.h s'incluait lui meme ??
    ccc_shap.h
    Code :

    #include <cstdio>
    #include "ccc_shap.h"

Discussions similaires

  1. erreur compilation fichier .c
    Par s_cherbani dans le forum AIX
    Réponses: 6
    Dernier message: 22/01/2010, 14h26
  2. Réponses: 2
    Dernier message: 17/01/2010, 20h44
  3. Réponses: 4
    Dernier message: 19/06/2009, 10h26
  4. message d'erreur : "le fichier verrou est trop importan
    Par lol_adele dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/06/2004, 07h58
  5. Trop de message d'erreurs: compilation KO
    Par jeannot27 dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/01/2004, 16h45

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