Проблема с базовой программой, использующей Boost Threads в c ++ - PullRequest
1 голос
/ 14 мая 2010

У меня есть простая программа, которая создает и выполняет как поток, используя потоки повышения в C ++.

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


void hello()
{

    std::cout<<"Hello, i am a thread"<<std::endl;

}

int main()
{
    boost::thread th1(&hello);
    th1.join();


}

Компилятор выдает ошибку в строке th1.join (). Это говорит «
Несколько маркеров на этой линии

- undefined reference to 

 `boost::thread::join()'

- undefined reference to 

 `boost::thread::~thread()'

"

Ответы [ 2 ]

1 голос
/ 16 мая 2010

В Eclipse щелкните правой кнопкой мыши свой проект и перейдите в Свойства.

Перейти к C / C ++ Build -> настройки -> настройки инструмента

Далее откройте раздел Библиотеки в GCC C ++ Linker.

На панели «Библиотеки (-l)» добавьте запись со значением boost_thread.

(Я предполагаю, что вы используете Linux, если нет, проверьте Этот вопрос )

1 голос
/ 14 мая 2010

Это определенно проблема отсутствия соответствующих заголовков / ссылок на библиотеки.

1) Вы должны проверить путь включения для наличия соответствующей папки boost и заголовков повышения. 2) Вам следует создать приложение с соответствующими файлами статических библиотек (xxx.lib). Для boost :: thread этот файл будет называться как libboost_thread_xxx.lib

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