2
我在學習Boost線程。 我使用代碼從一個在線教程,有些錯誤,我意識到我需要加速的新版本,所以我下載了最新版本的到一個目錄,解壓縮它,並命令它安裝後:Boost/CentOS鏈接問題
./bootstrap.sh
./bjam install
我試圖運行示例代碼是這樣的:
#include <boost/thread.hpp>
#include <iostream>
using namespace std;
using namespace boost;
void threader()
{
for (int i = 0; i < 5; ++i)
{
sleep(1);
cout << boost::this_thread::get_id() << "-" << i << endl;
//cout << "-" << i << endl;
}
}
int main()
{
thread t(threader);
sleep(1);
thread u(threader);
t.join();
u.join();
}
我跟我跟老版的Boost使用同一行編譯(1.33在CentOS標配):
g++ -Wall -L/usr/local/lib -lboost_thread threadtest.cpp -o threadtest
它編譯無誤的(不像老版的Boost),但是當我運行threadtest我得到:
./threadtest: error while loading shared libraries: libboost_thread.so.1.47.0: cannot open shared object file: No such file or directory
尋找到/ usr/local/lib目錄dircetory我可以看到以下內容:
-rw-r--r-- 1 root root 217270 Nov 10 12:50 libboost_thread.a
lrwxrwxrwx 1 root root 25 Nov 10 12:43 libboost_thread.so -> libboost_thread.so.1.47.0
-rwxr-xr-x 1 root root 138719 Nov 10 12:43 libboost_thread.so.1.47.0
所以我不明白爲什麼它不起作用。 我認爲這與編譯行的-lboost_thread部分有關。 我試圖鏈接到庫直接:
g++ -Wall -L/usr/local/lib libboost_thread.a threadtest.cpp -o threadtest
但它再次無法找到該文件。 任何人都可以幫忙嗎?