Russian Qt Forum

Компиляторы и платформы => Linux => Тема начата: ecspertiza от Февраль 19, 2015, 10:24



Название: Приоритетные пути для приложения
Отправлено: ecspertiza от Февраль 19, 2015, 10:24
Всем доброе утро  :)

Сложилась такая ситуация, необходимо собрать deb пакет для приложения. Ничего сложного тут нет, пакет собран. Но как всегда, на linux системах возникают проблемы с зависимостями. Приложение написано с использованием Qt 5.4, в репозитарии ubuntu есть по моему только 5.2, в этой версии есть баг с иконкой в трей меню на unity. Я бы мог тащить с собой необходимые библиотеки и через

Код:
ldconfig

указать приложению где есть для него библиотеки, но насколько я понял, приоритет отдается тем, что лежат в /usr/lib/ и приложенька все равно работает с Qt 5.2

Возникает вопрос, а можно ли как то жестко указать, какие библиотеки использоваться ? Или это совсем мовитон или мне искать другие способы реализации трея для unity?


Название: Re: Приоритетные пути для приложения
Отправлено: vizir.vs от Февраль 19, 2015, 10:34
а если статически собрать?


Название: Re: Приоритетные пути для приложения
Отправлено: ecspertiza от Февраль 19, 2015, 10:46
Можно конечно, работы будет дофига и Qt пересобрать и приложеньку. Но хотелось бы проверить есть ли баг с иконкой в Qt 5.4 по быстрому так сказать.


Название: Re: Приоритетные пути для приложения
Отправлено: ecspertiza от Февраль 19, 2015, 11:45
Вот так можно решить данную проблему

Код:
$ export LD_LIBRARY_PATH="~/myprogdir/lib/:$LD_LIBRARY_PATH" 
$ ./program


Название: Re: Приоритетные пути для приложения
Отправлено: qate от Февраль 19, 2015, 12:56
или короче: $ LD_LIBRARY_PATH="/path/to/libs" /path/to/programm/myprogramm

хороший пример сам запуск qtcreator, см ......./Tools/QtCreator/bin/qtcreator.sh


Название: Re: Приоритетные пути для приложения
Отправлено: ecspertiza от Февраль 19, 2015, 13:09
Бага с треем так и осталась.

Честно скажу 5ым Qt не доволен, все что я надеялся пофиксят и сделают круче, все залажали. Иконка создается не на месте, вот как пример http://stackoverflow.com/questions/17193307/qt-systray-icon-appears-next-to-launcher-on-ubuntu-instead-of-on-the-panel

По этому создано два или три тикета в баг репорте, обещали пофиксить в 5.2, то же осталось на 5.4. Такое ощущение, что портят продукт, хотя может я и не прав.


Название: Re: Приоритетные пути для приложения
Отправлено: __Heaven__ от Февраль 19, 2015, 13:28
но насколько я понял, приоритет отдается тем, что лежат в /usr/lib/
Если я не ошибаюсь, то приоритет отдается тем, которые первые указаны в PATH


Название: Re: Приоритетные пути для приложения
Отправлено: qate от Февраль 19, 2015, 13:33
не в PATH а в /etc/ld.so.conf


Название: Re: Приоритетные пути для приложения
Отправлено: ecspertiza от Февраль 19, 2015, 13:38
не в PATH а в /etc/ld.so.conf

там есть запись, но почему то команда

Код:
ldd

отображала пути в /usr/lib/



Название: Re: Приоритетные пути для приложения
Отправлено: qate от Февраль 19, 2015, 14:20
после изменения /etc/ld.so.conf нужно подать команду ldconfig


Название: Re: Приоритетные пути для приложения
Отправлено: ecspertiza от Февраль 19, 2015, 15:07
после изменения /etc/ld.so.conf нужно подать команду ldconfig

но по какой то причине ldd отображал пути из /usr/bin/


Название: Re: Приоритетные пути для приложения
Отправлено: qate от Февраль 19, 2015, 15:41
что говорит objdump -x ./myprogramm|grep PATH ?


Название: Re: Приоритетные пути для приложения
Отправлено: ecspertiza от Февраль 19, 2015, 16:36
Уже можно не проверять, я же через

Код:
LD_LIBRARY_PATH

сделал, все вроде работает нормально, но баг с иконкой так и остался, зараза.