[g++/boost] Linker boost lors de la compilation (résolu)
Publié : jeu. 26 août 2010, 10:39
Bonjour,
Je commence à programmer en C++, ça me change de java et du PHP;)
J'ai déjà des bases correctes et cherche à développez une application réseau.
La librairie boost permet de faciliter grandement cela apparement.
Cepandant lorsque j'essaye de compiler le code suivant trouvé sur internet pour tester un peu:
j'obtiens
Sur un autre programme j'obtiens
Je ne poste pas le code car il est un petit peu long et que je ne pense pas que le problème vienne de la, mais plus de ma façon de compiler.
Plus tard j'utiliserai des makefiles mais pour l'instant je veux tester à la "main", en attendant de lancer mon projet.
Ou est mon erreur?
Merci de votre aide
Je commence à programmer en C++, ça me change de java et du PHP;)
J'ai déjà des bases correctes et cherche à développez une application réseau.
La librairie boost permet de faciliter grandement cela apparement.
Cepandant lorsque j'essaye de compiler le code suivant trouvé sur internet pour tester un peu:
Code : Tout sélectionner
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
int main()
{
boost::asio::io_service io; // Service principal
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5)); // Commence à compter dès sa création
t.wait(); // On attend que le timer expire
std::cout << "Terminé !" << std::endl;
return 0;
}
Code : Tout sélectionner
% g++ main2.cpp -o main2 -L/usr/include/boost -lboost_system
/tmp/cc2eAi22.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl>::context>::posix_tss_ptr()':
main2.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEEC2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEEC5Ev]+0x26): undefined reference to `pthread_key_create'
/tmp/cc2eAi22.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl>::context>::~posix_tss_ptr()':
main2.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEED2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEED5Ev]+0x15): undefined reference to `pthread_key_delete'
/tmp/cc2eAi22.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context>::posix_tss_ptr()':
main2.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEEC2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEEC5Ev]+0x26): undefined reference to `pthread_key_create'
/tmp/cc2eAi22.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context>::~posix_tss_ptr()':
main2.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEED2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEED5Ev]+0x15): undefined reference to `pthread_key_delete'
collect2: ld a retourné 1 code d'état d'exécution
Code : Tout sélectionner
% g++ client.cpp -o client -L/usr/include/boost -lboost_system
/tmp/ccrCuHwM.o: In function `main':
client.cpp:(.text+0x2cb): undefined reference to `boost::thread::join()'
client.cpp:(.text+0x2da): undefined reference to `boost::thread::~thread()'
client.cpp:(.text+0x3db): undefined reference to `boost::thread::~thread()'
/tmp/ccrCuHwM.o: In function `boost::asio::detail::posix_thread::~posix_thread()':
client.cpp:(.text._ZN5boost4asio6detail12posix_threadD2Ev[_ZN5boost4asio6detail12posix_threadD5Ev]+0x26): undefined reference to `pthread_detach'
/tmp/ccrCuHwM.o: In function `boost::asio::detail::posix_thread::join()':
client.cpp:(.text._ZN5boost4asio6detail12posix_thread4joinEv[boost::asio::detail::posix_thread::join()]+0x2b): undefined reference to `pthread_join'
/tmp/ccrCuHwM.o: In function `boost::detail::thread_data_base::thread_data_base()':
client.cpp:(.text._ZN5boost6detail16thread_data_baseC2Ev[_ZN5boost6detail16thread_data_baseC5Ev]+0x24): undefined reference to `vtable for boost::detail::thread_data_base'
/tmp/ccrCuHwM.o: In function `boost::thread::thread<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >(boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >, boost::disable_if<boost::is_convertible<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >&, boost::detail::thread_move_t<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > > >, boost::thread::dummy*>::type)':
client.cpp:(.text._ZN5boost6threadC2INS_3_bi6bind_tImNS_4_mfi3mf0ImNS_4asio10io_serviceEEENS2_5list1INS2_5valueIPS7_EEEEEEEET_NS_10disable_ifINS_14is_convertibleIRSF_NS_6detail13thread_move_tISF_EEEEPNS0_5dummyEE4typeE[_ZN5boost6threadC5INS_3_bi6bind_tImNS_4_mfi3mf0ImNS_4asio10io_serviceEEENS2_5list1INS2_5valueIPS7_EEEEEEEET_NS_10disable_ifINS_14is_convertibleIRSF_NS_6detail13thread_move_tISF_EEEEPNS0_5dummyEE4typeE]+0x4f): undefined reference to `boost::thread::start_thread()'
/tmp/ccrCuHwM.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl>::context>::posix_tss_ptr()':
client.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEEC2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEEC5Ev]+0x26): undefined reference to `pthread_key_create'
/tmp/ccrCuHwM.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl>::context>::~posix_tss_ptr()':
client.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEED2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEED5Ev]+0x15): undefined reference to `pthread_key_delete'
/tmp/ccrCuHwM.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context>::posix_tss_ptr()':
client.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEEC2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEEC5Ev]+0x26): undefined reference to `pthread_key_create'
/tmp/ccrCuHwM.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context>::~posix_tss_ptr()':
client.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEED2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEED5Ev]+0x15): undefined reference to `pthread_key_delete'
/tmp/ccrCuHwM.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context>::operator boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context*() const':
client.cpp:(.text._ZNK5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEEcvPS8_Ev[boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context>::operator boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context*() const]+0x15): undefined reference to `pthread_getspecific'
/tmp/ccrCuHwM.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context>::operator=(boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context*)':
client.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceINS1_13epoll_reactorEEEE7contextEEaSEPS8_[boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context>::operator=(boost::asio::detail::call_stack<boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor> >::context*)]+0x20): undefined reference to `pthread_setspecific'
/tmp/ccrCuHwM.o: In function `boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::~thread_data()':
client.cpp:(.text._ZN5boost6detail11thread_dataINS_3_bi6bind_tImNS_4_mfi3mf0ImNS_4asio10io_serviceEEENS2_5list1INS2_5valueIPS7_EEEEEEED2Ev[_ZN5boost6detail11thread_dataINS_3_bi6bind_tImNS_4_mfi3mf0ImNS_4asio10io_serviceEEENS2_5list1INS2_5valueIPS7_EEEEEEED5Ev]+0x1f): undefined reference to `boost::detail::thread_data_base::~thread_data_base()'
/tmp/ccrCuHwM.o:(.rodata._ZTIN5boost6detail11thread_dataINS_3_bi6bind_tImNS_4_mfi3mf0ImNS_4asio10io_serviceEEENS2_5list1INS2_5valueIPS7_EEEEEEEE[typeinfo for boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >]+0x10): undefined reference to `typeinfo for boost::detail::thread_data_base'
collect2: ld a retourné 1 code d'état d'exécution
Plus tard j'utiliserai des makefiles mais pour l'instant je veux tester à la "main", en attendant de lancer mon projet.
Ou est mon erreur?

Merci de votre aide
