我使用Ubuntu + Eclipse並安裝了boost(不確定是否正確)。我安裝Boost使用apt-get安裝libboost *使用Eclipse編譯boost :: thread
我測試了一些簡單的代碼,它似乎是提升工作的權利。
但是,當我嘗試學習線程部分時,下面的代碼不起作用。
#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中做到這一點?我想當我在Ubuntu上安裝boost時,我不需要任何Eclipse。 – skydoor 2009-12-12 22:42:06
不,這不是一個日食問題,你必須指定一個鏈接器選項(檢查項目選項),像-lboost_thread-gcc-4.3或類似的東西,你必須首先找到庫來找出它的名字,你很可能必須鏈接到pthread。 – user229321 2009-12-12 23:02:16
您將不得不鏈接到pthread。我不得不這樣做。 – KitsuneYMG 2009-12-13 06:03:39