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 :

Erreurs lors de l'inclusion du hpp Boost thread


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Par défaut Erreurs lors de l'inclusion du hpp Boost thread
    Bonjour !

    J'ai décidé d'utiliser la librairie Boost afin d'avoir des threads portables (d'ailleurs si quelqu'un en connait une autre), j'ai compilé les librairies avec Bjam, tout s'est bien passé.

    Sauf que voila, dans mon programme lors de l'inclusion du header Boost thread (#include <boost/thread/thread.hpp>), Visual Studio 2005 me pète de magnifiques erreurs, que j'hésite à régler moi même en trifouillant dans les hpp boost, mais ca me fait quand même un peu chié de chercher pendant 4 ans pourquoi tel truc manque etc.. (d'ailleurs si quelqu'un connait un moyen de debugger les inclusions de headers genre avec des breakpoints je sais pas). Donc si quelqu'un connait la solution, ce serait vraiment le bienvenue, ca fait déjà 4 jours que je cherche désesperement partout comment régler mon probleme (et sur google personne n'a la même erreur que moi, je suis béni).

    Voila les erreurs que Visual Studio me sort :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    1>Compiling...
    1>stdafx.cpp
    1>D:\Projets\Stars Of Call\Boost\include\boost-1_35\boost/shared_ptr.hpp(457) : error C2039: 'sp_typeinfo' : is not a member of 'boost::detail'
    1>        D:\Projets\Stars Of Call\Boost\include\boost-1_35\boost/shared_ptr.hpp(478) : see reference to class template instantiation 'boost::shared_ptr<T>' being compiled
    1>D:\Projets\Stars Of Call\Boost\include\boost-1_35\boost/shared_ptr.hpp(457) : error C2061: syntax error : identifier 'sp_typeinfo'
    1>d:\projets\stars of call\boost\include\boost-1_35\boost\thread\win32\basic_timed_mutex.hpp(40) : error C3861: 'BOOST_INTERLOCKED_EXCHANGE_POINTER': identifier not found
    1>d:\projets\stars of call\boost\include\boost-1_35\boost\thread\win32\basic_timed_mutex.hpp(135) : error C3861: 'BOOST_INTERLOCKED_EXCHANGE_ADD': identifier not found
    1>d:\projets\stars of call\boost\include\boost-1_35\boost\thread\win32\basic_timed_mutex.hpp(161) : error C3861: 'BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER': identifier not found
    1>Build log was saved at "file://D:\Projets\Stars Of Call\Release\BuildLog.htm"
    1>Stars Of Call - 5 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========
    Il faut savoir que Visual Studio me sort ces erreurs alors que je n'ai pas de code en relation avec les thread Boost pour l'instant, c'est le simple fait d'inclure le hpp qui cause ca.

    Ce qui est ultra mystique c'est que j'ai créé un projet vide, et la miracle le header thread.hpp marche parfaitement aucune erreur. J'ai longuement comparé les différences au niveau des options C++ et Linker des deux projets VC++ et aucune différences, c'est à s'arracher les cheveux !

    Merci beaucoup.

  2. #2
    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,

    Sous Windows il n'est pas nécessaire de compiler soi-même boost, comme expliqué dans la documentation au chapitre Getting Started il existe un installeur qui fournit tout pré-compilé.

    Pour ton problème ça vient sans doute de ce que tu inclues avant dans ton precompiled header, essaye d'inclure boost/thread.hpp en premier pour vérifier ?

    MAT.

  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
    Ah sinon pour déboguer les inclusions de headers tu vas dans les propriétés du fichier cpp (ou du projet mais c'est violent), puis dans C/C++ puis Advanced et tu mets Show Includes à Yes.
    Ca permet d'avoir l'ordre d'inclusion des fichiers...

    MAT.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Par défaut
    Merci de me répondre mec, ca fait plaisir d'avoir quelqu'un pour m'aider ^^

    Ouais donc je suis au courant de l'installeur ou les libs sont déjà compilé pour VC8, le problème, c'est qu'il y toujours besoin d'un header pour utiliser les libs, sinon VC8 ne reconnait pas les classes et namespace utilisés (boost::thread), et en l'occurence le header qu'il faut inclure pour utiliser la lib boost thread c'est boost/thread/thread.hpp.

    Peut-être que tu as raison, mais dans ce cas je ne sais pas ou trouver un header pour les thread Boost ou il n'y a pas de code dedans, et qui défini seulement les classes, namespace, types etc...

    Sinon merci pour la technique de debug des headers, je vais tester ce soir, merci !

  5. #5
    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
    Les headers sont fournis avec l'installeur aussi...

    En général on inclut boost/thread.hpp (qui à son tour inclut d'autres headers dont boost/thread/thread.hpp) mais bon c'est un détail et le problème ne doit pas venir de là puisque de toute façon l'erreur est dans boost/shared_ptr.hpp.
    C'est clairement un conflit entre boost et 'autre-chose-inclut-avant'.

    MAT.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Par défaut
    Bah nan parce que j'ai mis l'inclusion du header en premiere inclusion dans stdafx.h, tous les autres headers sont inclus après. A la limite je pense à un problème de configuration du vcproj (vu que quand je crée un projet vide ca marche), mais je vois pas du tout quel option pourrait jouer la dessus.

    Peut-être que selon la config, certains headers sont inclus implicitement, je sais pas trop ...

    Oui j'ai testé avec boost/thread.hpp c'est pareil, même erreur.

Discussions similaires

  1. [SDL 1.2] Problème: Erreurs lors de l'inclusion de la librairie SDL
    Par rasgeath dans le forum SDL
    Réponses: 2
    Dernier message: 21/01/2015, 09h35
  2. Erreur lors de l'inclusion d'un .eps
    Par manitor dans le forum Erreurs - Avertissements
    Réponses: 8
    Dernier message: 24/01/2012, 01h12
  3. Erreurs lors de l'inclusion de <winsock2.h>
    Par heero dans le forum Bibliothèque standard
    Réponses: 1
    Dernier message: 22/12/2008, 07h06
  4. Message d'erreurs lors d'une inclusion
    Par kaskette21 dans le forum Langage
    Réponses: 1
    Dernier message: 12/02/2008, 11h34
  5. Erreur lors de l'inclusion de JFreeChart
    Par dahtah dans le forum Documents
    Réponses: 8
    Dernier message: 31/03/2007, 13h31

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