Qt plugin error, message in load "cannot load library"
-
I use Qt 5.3.2 with msvc 2010, I have the following use case, create an interface class and this class is used in a Qt plugin, the program and plugins compile fine, but when I execute the program and this try instance or load plugins, mark "cannot load library ..., the specified module could not be found.
This is header of Interface:class ServicesInterface{ public: virtual ~ServicesInterface() {} virtual QString name() = 0; virtual int port() = 0; } Q_DECLARE_INTERFACE(ServicesInterface, "services.ServicesInterface");
The header of plugin is this:
class BusControllerPlugin : public QObject, public ServicesInterface{ Q_OBJECT Q_PLUGIN_METADATA(IID "busControllerPlugin.ServicesInterface") Q_INTERFACES(ServicesInterface) public: BusControllerPlugin(); ~BusControllerPlugin(); }
And this is how I try to load and instantiate the plugins, in the main.cpp.
QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); qDebug() << "fileName: " << pluginsDir.absoluteFilePath(fileName); loader.load(); if(ServicesInterface *interface = qobject_cast<ServicesInterface *>(loader->instance())) { connect(interface, SIGNAL(pluginSend(const DeviceMessage&)), this, SLOT(msgFromPlugin(const DeviceMessage&))); interfaces.append(interface);**strong text** } else{ qDebug()<<"error loading plugin:"<<loader.errorString()<<";metadata:"<<loader.metaData(); }
I read many tutorials and I don't see difference, this system was compiled with Qt 5.2, but actually I use 5.3.2, and happens this, exist new guide or form to create and load plugins? Or I missed something.
Pd. I not use Qt Creator, i compile with custom script, the compilation is fine.
-
Hi and welcome to devnet,
Do you mean that you are using the plugin compiled with 5.2 with a 5.3.2 built project ?