Partage

Lib Boost Thread

Apres 2 semaine de recherche...

Sujet résolu
Le 18 janvier 2011 à 2:38:22

Salut

Après quelque tentative avec la bibliothèque de boost je n'ai guerre réussi a utilisé la fonction

boost:thread ()

J'ai fait plusieurs recherche sur internet et j'ai essayer d'installer avec la documentation
de boost sur le site officiel et je n'y est pas arriver



Voici mon code

#include <iostream>
#include <boost/thread.hpp>
#include <windows.h>
//#include <pthread.h>

#define NBRUSER 100
#define PORT 4500

using namespace std;

void test()
{
    cout << "sa marche" << endl;
}

int main()
{
    cout << "Lancement du serveur Soli" << endl;
    //Déclaration des Variables class
    Serveur World(NBRUSER, PORT);
    //Lancement de l'app
    World.lunch();
    boost::thread Connection(boost::bind(&Serveur::CoEngine, &World));

    //CreateThread(NULL, 0, Serveur::CoEngine, &World, 0, thread2);
    return 0;
}


Voici l'erreur que je ressoi

::type)]+0x6b)||undefined reference to `_imp___ZN5boost6thread12start_threadEv'|
Publicité
Le 18 janvier 2011 à 2:38:22
Le 18 janvier 2011 à 18:13:09

L'erreur "undefined reference to" veut souvent dire un mauvais paramétrage du linker, vérifie que tu lie bien ton code avec la bibliothèque boost.
Le 18 janvier 2011 à 23:08:52

J'ai réussi a compiler la lib mais maintenat j'option ce type d'erreur


C:\boostReady\lib\libboost_thread-mgw45-mt-1_43.a(thread.o):thread.cpp|| undefined reference to `_Unwind_Resume'|

:(

;) !

Merci d'avance
Soliphied
Zéro d'honneur Le 19 janvier 2011 à 12:33:38

As-tu compilé boost toi-même, et donc est-ce que le gcc utilisé est le même que celui utilisé pour compiler boost (4.5) ?
Peux-tu donner la ligne de commande qui génère cette erreur ?
Pour activer l'affichage de cette commande sous Code::Blocks: Settings -> Compiler & Debugger -> onglet 'Other' -> Compiler logging='Full command line'.
Recompiler et copier le contenu du panneau 'Build Log' et non 'Build Messages'


Le 23 janvier 2011 à 0:43:32

Javais pas compiler avec la même GCC :o merci beaucoup alex et Ozoir tout fonctionne parfaitement maintenant !
Le 14 juillet 2012 à 8:37:13

salut j'ai un problème proche du premier énoncer
debug/main.o: In function `~thread':
d:/boost_1_50_0/boost_1_50_0/boost/thread/detail/thread.hpp:174: undefined reference to `_imp___ZN5boost6thread6detachEv'
debug/main.o: In function `thread<void (*)(boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*), boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>':
d:/boost_1_50_0/boost_1_50_0/boost/thread/detail/thread.hpp:274: undefined reference to `_imp___ZN5boost6thread12start_threadEv'


j'ai eu 2 erreur similaire au paravent qui mon demander d'ajouter -lwsock32 -lws2_32 a ma commande de compilation donc je me demande si il me manque pas un lib windows sur les threads (le programme se compile sous mon linux) je suis avec ide QTcreator voila mon .pro sous window

TEMPLATE = app
CONFIG += console
CONFIG -= qt

INCLUDEPATH += D:/boost_1_50_0/boost_1_50_0
LIBS += C:/boost_lib/boost/bin.v2/libs/system/build/gcc-mingw-4.4.0/release/link-static/threading-multi/libboost_system-mgw44-mt-1_50.a
LIBS += C:/boost_lib/boost/bin.v2/libs/thread/build/gcc-mingw-4.4.0/release/link-static/threading-multi/libboost_thread-mgw44-mt-1_50.a
LIBS += C:/boost_lib/boost/bin.v2/libs/filesystem/build/gcc-mingw-4.4.0/release/link-static/threading-multi/libboost_filesystem-mgw44-mt-1_50.a
LIBS += C:/boost_lib/boost/bin.v2/libs/serialization/build/gcc-mingw-4.4.0/release/link-static/threading-multi/libboost_serialization-mgw44-mt-1_50.a
LIBS += -lwsock32 -lws2_32
SOURCES += main.cpp


oui j'ai déjà install boost avec une compilation mingw.

donc si vous avait une réponse pour résoudre cette erreur je serait extrêmement reconnaissant de me la faire partager ^^ merci d'avance.
Le 31 juillet 2012 à 22:33:33

la solution est : ajouter avant chaque include de thread (#define BOOST_THREAD_USE_LIB)
uniquement nécessaire sous windows.

Lib Boost Thread

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown