[boost] Instalacja biblioteki na linuxie

0

Witam,
mam problem z instalacją/odpaleniem biblioteki boost na GNU/Linuksie. Nie zależy mi na najświeższej wersji więc skorzystałem z tej, która jest w repozytorium (1.49) instalując pakiet libboost-all-dev. Biblioteka jest, ale linker twierdzi że czegoś brakuje. Po skompilowaniu i zlinkowaniu (g++ a.cpp -lboost_system) Hello Worlda używającego boost

#include <boost/asio.hpp>
#include <iostream>

int main( int argc, char * argv[] )
{
    boost::asio::io_service io_service;
    io_service.run();
    std::cout << "Do you reckon this line displays?" << std::endl;
    return 0;
}

Sypią mi się błędy:

/tmp/ccJYq17L.o: In function `boost::asio::detail::posix_tss_ptr_create(unsigned int&)':
hello.cpp:(.text._ZN5boost4asio6detail20posix_tss_ptr_createERj[_ZN5boost4asio6detail20posix_tss_ptr_createERj]+0x19): undefined reference to `pthread_key_create'
/tmp/ccJYq17L.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service, boost::asio::detail::task_io_service::thread_info>::context>::~posix_tss_ptr()':
hello.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceENS4_11thread_infoEE7contextEED2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceENS4_11thread_infoEE7contextEED5Ev]+0x15): undefined reference to `pthread_key_delete'
/tmp/ccJYq17L.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service, boost::asio::detail::task_io_service::thread_info>::context>::operator boost::asio::detail::call_stack<boost::asio::detail::task_io_service, boost::asio::detail::task_io_service::thread_info>::context*() const':
hello.cpp:(.text._ZNK5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceENS4_11thread_infoEE7contextEEcvPS7_Ev[_ZNK5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceENS4_11thread_infoEE7contextEEcvPS7_Ev]+0x15): undefined reference to `pthread_getspecific'
/tmp/ccJYq17L.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl, unsigned char>::context>::~posix_tss_ptr()':
hello.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEhE7contextEED2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEhE7contextEED5Ev]+0x15): undefined reference to `pthread_key_delete'
/tmp/ccJYq17L.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service, boost::asio::detail::task_io_service::thread_info>::context>::operator=(boost::asio::detail::call_stack<boost::asio::detail::task_io_service, boost::asio::detail::task_io_service::thread_info>::context*)':
hello.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceENS4_11thread_infoEE7contextEEaSEPS7_[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceENS4_11thread_infoEE7contextEEaSEPS7_]+0x20): undefined reference to `pthread_setspecific'
collect2: error: ld returned 1 exit status

Na innym komputerze z zainstalowanym wcześniej boostem ten sam program kompiluje się w ten sposób. Pytanie, czy wystarczy tylko coś dopisać linkerowi? Co?

2

-lpthread?

0
Azarien napisał(a):

-lpthread?

Dzięki. Niestety sam nie używałem praktycznie biblioteki POSIX.

1 użytkowników online, w tym zalogowanych: 0, gości: 1