Название: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: iamserg от Январь 24, 2014, 07:19 Доброго времени суток всем. Написал программку и несколько плагинов для нее, все замечательно работает.
Стал готовить программу к распространению. В папке /usr/local я создал папку myprogram с бинарником, в этой папке - папку plugins с плагинами. Если запускаю программу из консоли от имени пользователя, то получаю ошибку "The file '/usr/local/myprogram/plugins/libplugin<n>.so' is not a valid Qt plugin." для всех плагинов в папке plugins и ни один плагин не загружается. Если запускаю эту же программу из другой консоли от суперпользователя - все работает как часики, плагины грузятся, никаких сообщений в консоли нет... В чем может быть проблема? ЗЫЖ в проге, запущенной из QtCreator под пользователем все плагины грузятся без проблем (и отладочный, и релизный вариант), но там пути другие, ессесно. Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: carrygun от Январь 24, 2014, 10:20 Плагины надо помещать не в папку plugins а в папку с именем конкретного плагина (набора плагинов). Например плагины для работы с БД должны лежать рядом в папке sqldrivers.
Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: iamserg от Январь 24, 2014, 11:43 Про сторонние плагины я знаю. В моем случае плагины - мои, самописные, подключаемые через QPluginLoader. странность в том, что они не подключаются при запуске программы из консоли под юзером, а под рутом все работает без вопросов
Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: iamserg от Январь 24, 2014, 14:46 Поэкспериментировал немного с размещением бинарников, получается очень странная ситуация. если я копирую папку myprogram с вложенной папкой плагинов в любое другое место, кроме /usr/local - программа запускается под пользователем и корректно загружает плагины. ради любопытства пробовал поместить папку со своей программой в /usr, /usr/share, /tmp, /var, /var/www - во всех этих папках она запускается!
Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: Figaro от Январь 25, 2014, 07:42 читайте в ассистенте про qt.conf
Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: iamserg от Январь 25, 2014, 19:57 читайте в ассистенте про qt.conf Читал, ничего не нашел. Если не трудно, ткните носом в ту строку ассистанта, которая имеет отношение к описанной в моих постах ситуации.Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: gil9red от Январь 25, 2014, 20:02 читайте в ассистенте про qt.conf Читал, ничего не нашел. Если не трудно, ткните носом в ту строку ассистанта, которая имеет отношение к описанной в моих постах ситуации.Гугл спасает: http://doc.crossplatform.ru/qt/4.6.x/qt-conf.html Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: iamserg от Январь 25, 2014, 20:30 еще один... ребят, вы хоть читали в чем заключается проблема, в каком случае (этот случай - один, кстати) и какие плагины не загружаются?
а английский язык я знаю. спасибо за ссылку на русский перевод помощи, но я просил конкретные строки, которые подскажут, почему мои самописные плагины не загружаются, если программа находится в папке /usr/local, но при копировании папки с моей программой и плагинами в любое другое место - плагины загружаются? Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: Alex Custov от Январь 25, 2014, 21:56 попробуй на Debian. Может apparmor какой-нибудь не даёт грузить из /usr/local.
Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: iamserg от Январь 25, 2014, 22:27 о, спасибо за совет! в понедельник попробую покрутить apparmor, почитал про него... возможно в нем причина:)
Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: Figaro от Январь 26, 2014, 06:59 мой выглядит так:
[Paths] Prefix = . Translations = translations Plugins = plugins Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: iamserg от Январь 28, 2014, 15:10 посмотрел apparmor, выходит что мое приложение он никак не обрабатывает и как-будто бы не при делах... Также вставил такую строку перед загрузкой плагинов:
Код: QMessageBox::information(0, QString("Library path"), qApp->libraryPaths().join("\n"), QMessageBox::Ok); что любопытно: содержимое libraryPaths одинаково и когда программа запущена от юзера, и когда запуск был от суперпользователя. Только в первом случае в консоли идет ругань на невалидные Qt плагины и соответственно загружено 0 плагинов, а во втором - все хорошо и все плагины загружаются. В общем, я для себя решил разместить программу в /usr/share, а все настройки в домашней папке. Название: Re: Ubuntu+Qt4.8 - проблема с загрузкой плагинов Отправлено: Alex Custov от Январь 28, 2014, 15:59 посмотрел apparmor, выходит что мое приложение он никак не обрабатывает и как-будто бы не при делах... Также вставил такую строку перед загрузкой плагинов: Откомпилируй и запусти в Debian, например в виртуалке. |