Я пытаюсь научиться увеличивать потоки.Я использую код из учебника в Интернете, после некоторых ошибок я понял, что мне нужна более новая версия Boost, поэтому я загрузил последнюю версию в каталог, разархивировал ее и установил с помощью команд:
./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, который я вижуследующее:
-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
Но он снова не может найти файл.Кто-нибудь может помочь с этим?