Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt plugins и зависимости между ними / 16 сообщений из 16, страница 1 из 1
02.04.2014, 20:41
    #38603520
Wulff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
День добрый!
Делаю приложение с системой плагинов (по типу QtCreator) на Qt 4.8.
Все вроде бы норм, но потребовался доступ из одного плагина к функциям другого плагина. В нужном мне плагине объявляю заголовочные фалы нужного мне класса, использую, но... но компиляция останавливается на стадии линковки, пишет что "undefined reference to `_imp___ZNK22SparepartBalanceWidget13currentItemIdEv'", обычно такое при не подключенной библиотеке в LIBS. Но у меня же плагин! Естественно линкуется если в LIBS добавить нужный мне плагин. Но к сожалению не грузится плагин, т.к. не находит такую библиотеку рядом с приложением.
Подскажите пожалуйста, как быть? Как правильно решить зависимости?
Спасибо!
...
Рейтинг: 0 / 0
02.04.2014, 21:03
    #38603540
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Wulffкак быть?
Не используй статическую линковку. Обращайся к мастеру, чтобы тот дал тебе интерфейс
нужного плагина.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.04.2014, 21:15
    #38603546
Wulff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Dimitry Sibiryakov,

Так я ее и не использую! Я получаю нужный мне инстанс плагина, от которого получаю инстанс нужного класса в котором есть нужные мне функции. И вот при доступе к функциям и пишет такую хрень. Хотя если использовать сигналы\слоты все норм.
...
Рейтинг: 0 / 0
02.04.2014, 21:16
    #38603548
Wulff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Или для нужного мне класса нужно делать интерфейс?
...
Рейтинг: 0 / 0
02.04.2014, 21:21
    #38603550
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
WulffТак я ее и не использую!
Сообщение об ошибке говорит иное.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.04.2014, 21:24
    #38603551
Wulff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Dimitry Sibiryakov,
Хм... спасибо. Но я нифига не понял. Как тогда получить доступ к функциям классов предоставляемых плагином?
...
Рейтинг: 0 / 0
02.04.2014, 21:35
    #38603559
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
WulffКак тогда получить доступ к функциям классов предоставляемых плагином?
Сделать интерфейс плагина цельновиртуальным. Соответственно и нужные функции тоже. Потом
получаешь интерфейс - вызываешь функции.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.04.2014, 22:12
    #38603576
Wulff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Dimitry Sibiryakov,

Во что обнаружил. При доступе к любым ф-ям от QObject все норм. При доступе к ф-ям реализация которых в хедере тоже норм. А вот как только реализация метода в cpp файле, то сразу появляется эта ошибка. Как это объяснить?
...
Рейтинг: 0 / 0
02.04.2014, 22:42
    #38603596
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
WulffDimitry Sibiryakov,

Во что обнаружил. При доступе к любым ф-ям от QObject все норм. При доступе к ф-ям реализация которых в хедере тоже норм. А вот как только реализация метода в cpp файле, то сразу появляется эта ошибка. Как это объяснить?У как все запущено!
У тебя получается две отдельных реализации вызываемого плагина. Одна - собственно плагин, а вторая встроена в вызывающий плагин.
По существу всю плагинность ты уже убил.
...
Рейтинг: 0 / 0
03.04.2014, 10:27
    #38603866
Wulff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
White Owl,

Да я то это понимаю, но как быть в случае когда нужнен доступ одного плагина к другому?
...
Рейтинг: 0 / 0
03.04.2014, 10:33
    #38603877
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Wulff,

общую часть помести в библиотеку и линкуй оба плагина с этой библиотекой.
...
Рейтинг: 0 / 0
03.04.2014, 10:52
    #38603924
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Анатолий Широков,

Нет, не так надо делать.
Надо при сборке шептать "это — плагин, это — плагин", тогда соберется...
...
Рейтинг: 0 / 0
03.04.2014, 13:18
    #38604188
Wulff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
MasterZivАнатолий Широков,

Нет, не так надо делать.
Надо при сборке шептать "это — плагин, это — плагин", тогда соберется...


))) я до такого не догадался бы!
Ответ конечно по существу!
...
Рейтинг: 0 / 0
03.04.2014, 14:07
    #38604272
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Wulff, а вопрос :

обычно такое при не подключенной библиотеке в LIBS. Но у меня же плагин! Естественно линкуется если в LIBS добавить нужный мне плагин. Но к сожалению не грузится плагин, т.к. не находит такую библиотеку рядом с приложением.
Подскажите пожалуйста, как быть?


По существу?
...
Рейтинг: 0 / 0
03.04.2014, 14:14
    #38604284
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Wulffкак быть в случае когда нужнен доступ одного плагина к другому?
Обращаться к нему как к плагину. Точно таким же способом, как к нему обращается главное
приложение. Ни в коем случае не пытаться использовать его как-то иначе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.04.2014, 14:36
    #38604327
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Qt plugins и зависимости между ними
Dimitry Sibiryakov,

Ну, можно просто вынести общую часть (что используется в плагине и что вызывается из другого плагина) в обычную библиотеку,
а из вызываемого плагина перевызывать библиотеку.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Qt plugins и зависимости между ними / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]