2012-03-18 5 views
0

Я новичок в библиотеке boost. Пожалуйста, простите меня, если ответ очевиден. Вот мой код.Как создать поток с помощью Boost

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

using namespace std; 

void task1(void) 
{ 
    cout << "There" << endl; 
} 

int main() 
{ 
boost::thread mythread(task1); 
cout << "Hi" << endl; 
} 

Когда я пытаюсь построить я получаю следующее:

/mythread1.cpp:13: undefined reference to `boost::thread::~thread()' 

компилируется, если я просто объявил нить, повышение :: нити MyThread();

Любые предложения? Мне просто нужно знать синтаксис для объявления и запуска этого потока для завершения task1().

Пожалуйста, никаких ответов от темы. Мой вопрос достаточно прост. Спасибо за вашу помощь. Btw, Im с использованием Eclipse и Boost 1.42.

+2

Ваша программа компилируется в порядке, ее связь не удалась. Расширение threading lib не является заголовком, как и большинство boost, но библиотека, которая должна быть построена. Вы построили его или у вас есть предварительно скомпилированная версия, и вы правильно ссылаетесь на нее? – Rolle

+0

Во-первых, какую команду вы используете для компиляции и ссылки на эту программу? Во-вторых, вам нужно исправить вашу программу, чтобы она не заканчивалась, пока она не закончила работу. (Когда вы вернетесь из 'main', это неявно завершает ваш процесс.) –

+0

Спасибо Rolle, David. Нет, я его не построил. Можете ли вы указать мне учебник? Я использую Eclipse, и я установил boost от Synaptic. Из моего проекта в Eclipse я вижу путь include со всеми файлами boost, но не уверен, как связывать или строить или сделать его доступным для моего проекта. – user1277564

ответ

0

Использование потоков Boost необходимо связать библиотеку ускоряющих потоков. В вашем коде вам не хватает соединения (см. Разделы docs)

+0

Почему вы не связываете темы для нас? – ForceMagic

Смежные вопросы