LINUX.ORG.RU

Qt, динамические библиотеки


0

0

Подскажите, пожалуйста, как сделать, чтобы исполняемый файл подхватывал либы, которые находятся в той же папке где и сам бинарник?

Если скопировать библиотеку в /usr/lib, то все работает.

Смотрел в сторону QLibrary (так как и сама прога и либа на qt4), но чего-то я не доганяю. Хотелось бы сделать с минимальными переделками самой проги. Если не сложно, ткните куда копать.

anonymous

переменная окружения LD_LIBRARY_PATH. Или я не понял вопроса?

Есть my-prog.bin - твой исполняемый файл. И есть sh скрипт my-prog
примерно такого содержания:
#!/bin/sh
cd $MY_PROG_INSTALLATION_DIRECTORY
LD_LIBRARY_PATH=. ./my-prog.bin

Если есть под рукой, например, google-earth - посмотри там.
google-earth.bin и google-earth

binnehex
()
Ответ на: комментарий от binnehex

Большое спасибо. Действительно так работает. А то я уже пробовал через LD_PRELOAD.

Кстати может кто-то объяснит почему в линуксе загрузчик не ищет библиотеки в той же папке, где находится запускаемая программа. Просто в винде скомпилил эту же прогу -- все заработало сразу.

Заранее благодарен.

anonymous
()
Ответ на: комментарий от anonymous

> Кстати может кто-то объяснит почему в линуксе загрузчик не ищет библиотеки в той же папке, где находится запускаемая программа.

видимо, из за того же, из за чего он не смотрит на бинарники, лежащие в текущей директории, при выполнении утилит командной строки: чтобы никто тебе незаметно их не подменил

BreadFan ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.