Russian Qt Forum
Ноябрь 23, 2024, 05:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPluginLoader не возвращает объект через instance()  (Прочитано 2724 раз)
Hrundel
Гость
« : Сентябрь 09, 2013, 17:05 »

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

Код:
    loader = new QPluginLoader("libaddpublic.so", this);

    if(loader)
    {
        if(loader->instance())
        {
            AddPublicHostInterface* addPublicDialog = qobject_cast<AddPublicHostInterface*>(loader->instance());
            addPublicDialog->showDialog();
        }
        else
        {
            qDebug() << "Root object wasn\'t loaded";
        }
    }
    else
    {
        qDebug() << "File wasn\'t loaded";
    }

получаю ноль от loader->instance()
нужно под линухом что-то дополнительно прописывать чего нет под виндой?
Записан
Serr500
Гость
« Ответ #1 : Сентябрь 09, 2013, 21:35 »

А что возвращает QPluginLoader::errorString()?
Записан
Hrundel
Гость
« Ответ #2 : Сентябрь 10, 2013, 08:52 »

пишет "Cannot load library /home/nus/libaddpublic.so: (/home/nus/libaddpublic.so: undefined symbol: _ZTI22AddPublicHostInterface)"
« Последнее редактирование: Сентябрь 10, 2013, 09:25 от Hrundel » Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #3 : Сентябрь 10, 2013, 11:11 »

ну вот и понятно в чем дело, тщательно проверьте все интерфейсы, qmake еще раз принудительно запустите. такое часто бывало, когда например было описание слота, но отсутствовала реализация и т.п. кстати какая версия qt? в 5й изменился механизм описания интрефейсов плагинов.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.058 секунд. Запросов: 23.