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 :
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.
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 ==========
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.
Partager