Ошибка загрузки общих библиотек boost - PullRequest
3 голосов
/ 31 декабря 2010

Я работаю над Centos.Я установил версию Boost 1.45.0 в моей системе.Программы скомпилированы правильно, но всякий раз, когда я набираю команду для просмотра вывода, она выдает следующую ошибку:

. / A.out: ошибка при загрузке разделяемых библиотек: libboost_thread.so.1.45.0: не удается открыть разделяемыйобъектный файл: нет такого файла или каталога

Ответы [ 3 ]

5 голосов
/ 31 декабря 2010

Как вы установили буст-библиотеки?

Вероятно, проблема в том, что компоновщик не может найти библиотеки, и при сборке программы вам пришлось вручную указывать дополнительные пути к библиотекам для поиска библиотек.

AБыстрое исправление, которое вы можете сделать, это установить LD_LIBRARY_PATH, включив в него каталог, в котором находится библиотека потоков поддержки:

export LD_LIBRARY_PATH=/path/to/boost/libs:$LD_LIBRARY_PATH

./runExecutable

5 голосов
/ 31 декабря 2010

В дополнение к другим ответам вы также можете установить тег DT_RPATH elf при связывании вашего исполняемого файла

-Wl,-rpath,/path/to/boost/libraries -L /path/to/boost/libraries -lboost_whatever

Таким образом, вам не нужно устанавливать LD_LIBRARY_PATH, если библиотеки установлены в нестандартном месте.

2 голосов
/ 31 декабря 2010

Вам необходимо установить переменную окружения LD_LIBRARY_PATH, чтобы включить путь к библиотекам Boost (они могут быть в /usr/local/lib и т. Д.).

В bash это просто

export LD_LIBRARY_PATH=/path/to/boost:$LD_LIBRARY_PATH
...