Проблема с Boost / CentOS - PullRequest
       8

Проблема с Boost / CentOS

2 голосов
/ 10 ноября 2011

Я пытаюсь научиться увеличивать потоки.Я использую код из учебника в Интернете, после некоторых ошибок я понял, что мне нужна более новая версия 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

Но он снова не может найти файл.Кто-нибудь может помочь с этим?

1 Ответ

2 голосов
/ 10 ноября 2011

Мне нужно было повторно добавить путь к моей директории lib в мою LD_LIBRARY_PATH со следующим:

export LD_LIBRARY_PATH="/usr/local/lib/"

Это добилось цели.

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