boost :: thread неопределенная ссылка - PullRequest
0 голосов
/ 01 июля 2011

Я только что установил библиотеки boost и пытаюсь использовать многопоточность.Я скопировал этот пример именно из примера библиотеки повышения.Я получаю сообщение об ошибке:

undefined reference boost::thread::join()

Вот код,

#include <boost/thread.hpp>
#include <boost/thread/xtime.hpp>
#include <iostream>

struct thread_alarm
{
    thread_alarm(int secs) : m_secs(secs) { }
    void operator()()
    {
        boost::xtime xt;
        boost::xtime_get(&xt, boost::TIME_UTC);
        xt.sec += m_secs;

        boost::thread::sleep(xt);

        std::cout << "alarm sounded..." << std::endl;
    }

    int m_secs;
};

int main(int argc, char* argv[])
{
    int secs = 5;
    std::cout << "setting alarm for 5 seconds..." << std::endl;
    thread_alarm alarm(secs);
    boost::thread thrd(alarm);
    thrd.join();
}

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

какой компилятор?

попробуйте, если это gcc

$ g++ -o ./app.out ./source.cpp -lboost_thread

если вы работаете в Windows, возможно, вам необходимо убедиться, что установленный вами pthread, а также сообщить компилятору, где и как их связать, ваше приложение и сторонняя библиотека, такая как boost_thread.

надеюсь, что это полезно для вас

1 голос
/ 28 февраля 2013

В моем Fedora Core 16 требуемая дополнительная библиотека lib для компоновки была 'boost_thread-mt' (добавьте '-lboost_thread-mt' в ваш коктейль компоновщика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...