В настоящее время я начинаю работать с общими библиотеками под Linux (OpenSuse). Общие библиотеки, которые я пишу, используются кучей небольших программ, которые предоставляют некоторые инструменты для электротехники. Таким образом, библиотеки очень специфичны. Поэтому я хотел бы сохранить программы и общие библиотеки в домашнем каталоге пользователей.Общие библиотеки в папке проекта
До сих пор я добавил путь к папке проекта /etc/ld.so.conf
, который отлично работает. Есть только две проблемы.
Во-первых, пользователю необходимы права root для изменения содержимого ld.so.conf
, которого я бы хотел избежать. Для пользователя должно быть как можно проще запускать программное обеспечение.
Вторая проблема заключается в том, что программы больше не работают, если пользователь переименовывает или перемещает папки проекта (содержащие программу и библиотеки). Это может смутить некоторых пользователей.
Есть ли способ добавить путь к динамическому компоновщику без привилегий root (я собираюсь запустить мое приложение из сценария, который ранее добавляет текущий путь к динамическому компоновщику)?
Спасибо, я думаю, что путь, использующий переменную LD_LIBRARY_PATH, является приемлемым способом. Теперь я запускаю свое приложение, используя следующий сценарий оболочки, который в настоящее время работает хорошо для меня. '#/бен/Баша PROGNAME = MyProg BASEDIR = $ (PWD) экспорта LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: $ BASEDIR DEPERROR = $ (LDD testeseries | Grep "не найдено") если! ["$ DEPERROR"!знак равно затем \t эхо "Dependency Ошибка:" \t эхо "Не удалось загрузить общие библиотеки, необходимые для $ PROGNAME" \t эхо $ DEPERROR еще \t ./$PROGNAME fi' – much