@pixik

Как в linux перед выполнением программы подсунуть путь к другой библиотеке?

Доброго времени!
Программа собирается в qt creator, и из *.pro файла берет пути к нужной библиотеке. Но если программу запускать из консоли, то пути к библиотекам она берет уже из ldconfig.
Есть мысль написать bash скрипт, который создает некий симлинк или еще чего, чтобы программа работала с нужной библиотекой. Куда можно прописать откуда программе брать путь к библиотеке?
Всем спасибо! Прошу прощение за своё делитанство.
  • Вопрос задан
  • 686 просмотров
Решения вопроса 1
Olej
@Olej
инженер, программист, преподаватель
Но если программу запускать из консоли, то пути к библиотекам она берет уже из ldconfig.

На самом деле алгоритм разрешения имён и на этапе сборки и на этапе выполнения - гораздо обширнее и интереснее ... но почему-то это не очень известно, и по сети курсируют красивые народные легенды на этот счёт. Более-менее подробное перечисление возможностей см. Разработка программных проектов в Linux (стр.53 и далее ... о библиотеках).

Есть мысль написать bash скрипт, который создает некий симлинк или еще чего, чтобы программа работала с нужной библиотекой. Куда можно прописать откуда программе брать путь к библиотеке?

Можно, но такой скрипт достаточно бессмысленный - используя LD_LIBRARY_PATH, LD_RUN_PATH и другие способы всегда можно определить (штатными средствами!) какие библиотеки использовать.
А "откуда программе брать путь к библиотеке?" - это по ссылке выше.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
AxianLTD
@AxianLTD
Самый правильный ИМХО chroot
Ответ написан
Комментировать
с помощью переменной LD_LIBRARY_PATH можно задать пути к библиотекам
Ответ написан
Комментировать
LD_PRELOAD
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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