Почему делает LD_LIBRARY_PATH, только работает в ~ / Рабочий стол/?

Если я запускаю приложение приложения от ~/Desktop/ Я добираюсь:

/home/me/Desktop/app: error while loading shared libraries: somelib.so.0: cannot open shared object file: No such file or directory

Таким образом, я создал этот сценарий, названный app.sh:

DIR="$(dirname "$0")"
export LD_LIBRARY_PATH=$DIR
$DIR/app

И затем выполнение приложения.

Однако я решил, что не хочу иметь его на Рабочем столе, но иметь под ~/dev/apps/. Таким образом, я перемещаю все файлы (приложение, somelib.so.0, app.sh) и получаю эту ошибку, когда я запускаю скрипт:

/home/me/dev/apps/app: error while loading shared libraries: somelib.so.0: cannot open shared object file: No such file or directory

Если я перемещаю его в ~/foo/bar/ все еще не работает.

Пожалуйста, примите во внимание:

  • Все каталоги и файлы имеют те же полномочия.
  • Все файлы находятся в том же каталоге.
  • Я называю сценарий от ~/Destop/app.sh или ~/dev/app/app.sh.
  • Я выполняю его от /home/me

Действительно ли это - нормальное поведение или является там чем-то не так с моей установкой или конфигурацией?

0
задан 20 July 2017 в 20:13

2 ответа

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

Библиотека Deleting это и копирование его снова от удара решило проблему.

Я добавляю Наутилус как тег к вопросу. Однако я не могу больше воспроизводить эту проблему, даже когда вставка копии снова от Наутилуса.

0
ответ дан 2 November 2019 в 21:46

Можно включить явный путь LD_LIBRARY_PATH как это:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/me/Desktop/app/lib

(используйте путь в качестве примера к библиотеке),

Также можно включить это Ваш .bash_profile

Также можно создать softlink в /usr/lib к Вашей библиотеке

0
ответ дан 2 November 2019 в 21:46

Другие вопросы по тегам:

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