2009-12-22 2 views
1

Я создал автономный исполняемый файл, который ссылается на мой .so объект. оба находятся в одном каталоге. когда я пытаюсь запустить исполняемый файл, он дает мне следующую ошибку:open failed: нет такого файла или каталога

ld.so.1: myExec: fatal: libMine.so: open failed: No such file or directory

что я делаю неправильно?

+2

'экспорт LD_LIBRARY_PATH = $ PWD: $ LD_LIBRARY_PATH' –

+1

Дубликат http://stackoverflow.com/questions/1785617/shared-library-path-as-executable-directory – 2009-12-22 05:50:37

+0

Я согласен, Роджер, ответ на SO 1785617 дает ответ на это, но, безусловно, не очевидно, что они простые дубликаты. –

ответ

3

Unix не смотрите в текущем каталоге для .so файлов автоматически.

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

Смотрите также why you shouldn't make your users use LD_LIBRARY_PATH

0

Да, как говорит Алок, путь загрузки lib не имеет каталога, в котором содержится .so. Не предполагается даже текущий рабочий каталог; он должен быть явно указан в LD_LIBRARY_PATH.

0

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

export LD_LIBRARY_PATH=. 
+1

Это clobbers любое ранее существовавшее значение - вам может быть лучше: «экспортировать LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: .' (который расширяет путь и помещает текущий каталог в конец, который, возможно, немного более безопасен). –

Смежные вопросы