Я использую Ubuntu + Eclipse и установленный boost (не совсем корректный). Я установил Boost с помощью apt-get install libboost *Компиляция boost :: thread with Eclipse
Я проверил несколько простых кодов, кажется, что форсирование работает правильно.
Однако, когда я пытаюсь изучить часть потока, приведенный ниже код не работает.
#include <boost/thread/thread.hpp>
#include <iostream>
using namespace std;
void hello()
{
cout<<"hello!"<<endl;
}
int main()
{
boost::thread thrd(&hello);
cout<<"Just a test!"<<endl;
}
Информация об ошибке следующая, есть 4 ошибки.
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/detail/thread.hpp undefined reference to `boost::detail::thread_data_base::~thread_data_base()' FirstCppProject line 40 1260656497961 200
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/detail/thread.hpp undefined reference to `boost::thread::start_thread()' FirstCppProject line 191 1260656497967 202
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/pthread/thread_data.hpp undefined reference to `vtable for boost::detail::thread_data_base' FirstCppProject line 65 1260656497965 201
Severity and Description Path Resource Location Creation Time Id
undefined reference to `boost::thread::~thread()' FirstCppProject test.cpp line 15 1260656497959 199
Пожалуйста, простите меня, если мой вопрос слишком наивен. Пожалуйста, предложите любую информацию, которая, по вашему мнению, может мне помочь.
спасибо за ваш быстрый комментарий. Это проблема с Eclipse? Итак, как это сделать в Eclipse? Я подумал, что когда я установил boost на Ubuntu, мне нечего делать с Eclipse. – skydoor
Нет, это не проблема затмения, вам нужно указать опцию для компоновщика (проверьте параметры проекта), что-то вроде -lboost_thread-gcc-4.3 или подобное, вам придется сначала найти библиотеку, чтобы выяснить его имя, скорее всего, вам придется связать и с pthread. – user229321
Вам придется ссылаться на pthread. Я должен был сделать это раньше. – KitsuneYMG