ошибка при загрузке разделяемых библиотек: libboost_serialization.so.1.66.0: невозможно открыть файл общих объектов: нет такого файла или каталога [duplicate]

Предполагаю, что вы используете Rails 5? Проверьте эту ссылку (внизу). Похоже, что эти предупреждения уйдут с выпуском № 27458.

49
задан Ciro Santilli 新疆改造中心 六四事件 法轮功 2 November 2015 в 10:16
поделиться

2 ответа

Существует два способа достижения этого:

  • Используйте опцию -rpath:

gcc XXX.c -o xxx.out -L$HOME/.usr/lib -lXX -Wl,-rpath=/home/user/.usr/lib

  • Использовать переменную среды LD_LIBRARY_PATH - поместить эту строку в ваш файл ~/.bashrc: export LD_LIBRARY_PATH=/home/user/.usr/lib

Это будет работать даже для предварительно сгенерированных двоичных файлов, так что вы можете, например, загрузить некоторые пакеты из debian.org , распакуйте двоичные файлы и разделяемые библиотеки в ваш домашний каталог и запустите их без перекомпиляции.

Для быстрого теста вы также можете сделать (в bash):

LD_LIBRARY_PATH=/home/user/.usr/lib ./xxx.out

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

79
ответ дан pelya 21 August 2018 в 09:03
поделиться

Должно быть LIBRARY_PATH вместо LD_LIBRARY_PATH. gcc проверяет наличие LIBRARY_PATH, который можно увидеть с опцией -v

1
ответ дан Regolith 21 August 2018 в 09:03
поделиться
  • 1
    LD_LIBRARY_PATH не для GCC, это для загрузчика библиотеки времени выполнения (/lib/ld-linux.so.2 и т. д.). GCC не может быть установлен вообще для работы LD_LIBRARY_PATH. – pelya 23 April 2018 в 20:46
Другие вопросы по тегам:

Похожие вопросы: