Общий объект не найден, но присутствует в каталоге компоновщика - PullRequest
0 голосов
/ 29 ноября 2018

Я скачал и собрал boost_1_68_0 из исходного кода и получил следующее сообщение:

Библиотеки Boost C ++ были успешно собраны!Следующий путь должен быть добавлен к путям включения компилятора:

/resources/boost_1_68_0

Следующий путь должен быть добавлен к путям библиотеки компоновщика:

/resources/boost_1_68_0/stage/lib

Код с этим прекрасно компилируется:

g++-4.9 -std=c++11 -I  /resources/boost_1_68_0  -L /resources/boost_1_68_0/stage/lib  regex.cpp -lboost_regex -o reg

Когда я пытаюсь запустить код, я получаю следующее:

. / Reg: ошибка при загрузке общих библиотек: libboost_regex.so.1.68.0: невозможно открыть общий объектfile: Нет такого файла или каталога

Однако внутри / resources / boost_1_68_0 / stage / lib у меня есть следующие файлы:

libboost_regex.so.1.68.0
libboost_regex.so -> libboost_regex.so.1.68.0

Есть ли способ сделать этоискать общий объект внутри директории / resources / boost_1_68_0 / stage / lib ?

Спасибо!

Использование CentOS 7

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Если у вас есть root-доступ на компьютере, попробуйте:

echo "/resources/boost_1_68_0/stage/lib" >> /etc/ld.so.conf.d/boost.conf

и перезапустите ldconfig.

0 голосов
/ 29 ноября 2018

Вы должны положить /resources/boost_1_68_0/stage/lib в LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/resources/boost_1_68_0/stage/lib:${LD_LIBRARY_PATH}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...