Название: Qt plugin передача класса Отправлено: ti0 от Декабрь 02, 2017, 01:09 Реализую передачу в плагине стороннего класса. Интерфейс:
Код: class TaskInterface { public: virtual ~TaskInterface() {} virtual TestA* factory() const = 0; }; Плагин: Код: class Plugin : public QObject, TaskInterface Все работает, плагин грузится.{ Q_OBJECT Q_PLUGIN_METADATA(IID "com.R.TaskInterface/1.0" FILE "plugin.json") Q_INTERFACES(TaskInterface) public: TestA* factory() const { return new TestA; } }; Теперь мне нужно переопределить класс TestA в плагине. Для теста создал класс TestB, который наследуется от TestA. В TestB ничего не менял и не добавлял. Приинклюдил в хедеру плагина, и больше ничего в хедере не менял: Код: #include "testb.h" class Plugin : public QObject, TaskInterface { Q_OBJECT Q_PLUGIN_METADATA(IID "com.R.TaskInterface/1.0" FILE "plugin.json") Q_INTERFACES(TaskInterface) public: TestA* factory() const { return new TestA; } }; Плагин не грузится ... с ошибкой "undefined symbol: _ZN5TestA16staticMetaObjectE)". В идеале я хочу в методе TestA* factory() const создать экземпляр класса TestB и передать его, но даже его обьявление не работает. WFT? |