Знаю, что обычно используют статическую линковку для возможности работы программы на разных ПК, но все равно интересно как это сделать с so, например с qt часто вижу программы, которые обращаются для работы к внутренним динамическим dll/so файлам, поэтому возник вопрос, как можно указать программе в убунте путь к своим(внутренним so), т.е. нашли все зависимости через ldd например скопировали в папку и перенесли на другую машину.
Я нашел только вариант с тем чтобы запускать программу так, LD_LIBRARY_PATH=so_test/ ./app , но тут либо скрипт писать надо, либо каждый раз при запуске это прописывать, что не очень удобно, поэтому и хочу узнать как еще можно указать папку для программы с динамическими библиотеками, чтобы они были локальными и использовались только для этой программы.
упаковать прогу со всеми либами в пакет консервированного приложения flatpack, snappy, appimage и подобные.
внутри пакета прога будет вариться в своей песочнице со всеми блекджеками и причитающимяся, что положили в пакет.
------------------
написать скрипт (или батник/cmd, выражаясь виндовыми словами) туда прописать все что нужно. LD_LIBRARY_PATH=path/to/lib; program
Возможно вы не дочитали до этого момента в вопросе, но основной вопрос в том как сделать так, чтобы мне не пришлось писать скрипт для этого, а чтобы исполняемый файл уже знал, где лежает эти либы. Если задеплоить программу на qt то она деплоится с динамическими либами и всё линкуется без скриптов.
calculator212, перекомпилировать с встроенными либами.
как вариант упаковать прогу со всеми либами в пакет консервированных приложений flatpack, snappy, appimage и иже с ними.
внутри пакета прога будет вариться в своей песочнице со всеми блекджеками и причитающимяся, что положили в пакет.