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

Boost C++ Discussion :

[threads]étrange erreur à la compilation.


Sujet :

Boost C++

  1. #1
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut [threads]étrange erreur à la compilation.
    Bonjour.

    J'utilise depuis peu boost::threads et je tombe sur une curieuse erreur.

    J'ai un fichier wheels.cpp qui inclus un fichier wheels.h

    le fichier wheel. h commence comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifndef WHEELS_H_INCLUDED
    #define WHEELS_H_INCLUDED
     
     
    #include <boost/thread/thread.hpp>
    lorsque je compile wheels.cpp indépendamment (sous code::blocks avec gcc sous ubuntu), tout se passe bien.

    par contre, lorsque je compile le programme en entier, j'obtiens l'erreur suivante:
    Compiling: main.cpp
    In file included from /usr/include/c++/4.3/cstdlib:49,
    from /usr/local/include/boost-1_38/boost/config/platform/linux.hpp:14,
    from /usr/local/include/boost-1_38/boost/config.hpp:53,
    from /usr/local/include/boost-1_38/boost/thread/detail/platform.hpp:14,
    from /usr/local/include/boost-1_38/boost/thread/thread.hpp:12,
    from /media/disk/.../wheels.h:23,
    from /media/disk/.../bot_base.h:7,
    from /media/disk/.../bart_pos.h:26,
    from /media/disk/.../main.cpp:2:
    /usr/include/c++/4.3/cstddef:55: erreur: ‘::ptrdiff_t’ has not been declared
    /usr/include/c++/4.3/cstddef:56: erreur: ‘::size_t’ has not been declared
    In file included from /usr/local/include/boost-1_38/boost/config/platform/linux.hpp:14,
    from /usr/local/include/boost-1_38/boost/config.hpp:53,
    from /usr/local/include/boost-1_38/boost/thread/detail/platform.hpp:14,
    from /usr/local/include/boost-1_38/boost/thread/thread.hpp:12,
    from /media/disk/.../wheels.h:23,
    from /media/disk/.../bot_base.h:7,
    from /media/disk/.../bart_pos.h:26,
    from /media/disk/.../main.cpp:2:
    /usr/include/c++/4.3/cstdlib:107: erreur: ‘::div_t’ has not been declared
    /usr/include/c++/4.3/cstdlib:108: erreur: ‘::ldiv_t’ has not been declared
    /usr/include/c++/4.3/cstdlib:110: erreur: ‘::abort’ has not been declared
    /usr/include/c++/4.3/cstdlib:111: erreur: ‘::abs’ has not been declared
    ....
    et j'obtient comme cela une centaine d'erreur suite à quoi la compilation plante...

    Ce qui est curieux, c'est qu'il passe par le thread.hpp inclus dans wheels.h pour me désigner cette erreur.

    d'autre part, j'ai d'autres programmes qui utilisent thread.hpp qui fonctionnement parfaitement...

    bref, je n'ai pas la queue d'une idée pour expliquer et résoudre ce problème.

    si vous pouviez m'éclairer...

    merci

  2. #2
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    O_o

    je viens de trouver comment régler le problème, mais je ne comprend pas mieux...

    il faut simplement placer le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     #include <boost/thread/thread.hpp>
    directement dans le main.cpp.

    si on le met dans n'importe-quel autre .h, il fait une erreur...

    je n'en reste que davantage béat...

    si quelqu'un a une once d'explication à donner, je suis preneur...

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Ça a à voir avec le contenu de bot_base.h et/ou bart_pos.h apparemment...

    MAT.

  4. #4
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    je crois avoir trouvé l'erreur, même si je ne comprend pas trop:

    wheels est inclus dans un namespace.

    apparemment ça vient de là, même si je ne comprend pas pourquoi ça ne bugue que pour boost (et pas pour les stl par exemple...


    merci

Discussions similaires

  1. Des erreurs de compilation étrange
    Par Invité dans le forum C++
    Réponses: 5
    Dernier message: 27/12/2010, 17h04
  2. Erreur de compilation étrange
    Par djaibi dans le forum C++
    Réponses: 8
    Dernier message: 27/03/2009, 04h57
  3. Réponses: 4
    Dernier message: 17/11/2007, 10h10
  4. Erreur de compilation étrange
    Par poukill dans le forum C++
    Réponses: 5
    Dernier message: 19/10/2007, 09h55
  5. Réponses: 2
    Dernier message: 04/03/2003, 23h24

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