«Ошибка при загрузке совместно используемых библиотек» возникает при связывании библиотеки Boost, за исключением того, что я не могу использовать root-доступ для ее исправления - PullRequest
4 голосов
/ 19 сентября 2019

Я пытаюсь запустить какой-нибудь код на суперкомпьютере моей школы, работающем на Ubuntu.Этот код требует библиотеку таймера в boost.

Поэтому я загрузил репозиторий boost 1.71.0, успешно скомпилировал его.

Затем собрал его с помощью следующей команды (успешно) g ++ -g src / foo.cpp -o запустить / foo -I ../boost_1_71_0/ -L ../boost_1_71_0/stage/lib/ -lboost_timer -fopenmp -std = c ++ 11

Затем, когда я пытаюсьчтобы запустить файл, это происходит: Ошибка при загрузке общих библиотек: libboost_timer.so.1.71.0: не удается открыть файл общего объекта: Нет такого файла или каталога

Я прокрутил несколько обсуждений на форуме и, очевидно, запустилСледующая команда должна обновить путь к библиотеке и исправить все: sudo / sbin / ldconfig -v Но так как у меня нет доступа с правами root, я не могу его запустить.Я ищу обходной путь, не требующий судебного разбирательства.

1 Ответ

2 голосов
/ 19 сентября 2019

Вы можете запустить вашу программу, указав ../boost_1_71_0/stage/lib/ в LD_LIBRARY_PATH, чтобы динамический загрузчик знал, где искать разделяемые библиотеки Boost.Запустите вашу программу следующим образом, предполагая, что библиотеки Boost расположены на ../boost_1_71_0/stage/lib/ относительно каталога, в котором ваша программа находится на диске.

LD_LIBRARY_PATH=../boost_1_71_0/stage/lib/ ./program
...