Ich habe ein eigenes Plugin Interface und ein Plugin, das das Interface implementiert geschrieben. Wenn ich nun aber versuche, das Plugin zu Laden, gibt der QPluginLoader
einen NULL-Pointer und den im Titel genannten Error String zurück.
Das komische ist aber, dass er beim ersten versuch, das Plugin zu laden einen Plugin verification data mismatch zurückliefert und bei erneutem Versuch zu laden (ohne Neukompilation), die oben genannte Fehlermeldung. Ich bin schon den ganzen tag am suchen.
Das Plugin als auch die Hauptapplikation wurden auf der selben Plattform und mit dem selben Compiler gebaut. Beide mit Unterstützung von QMake.
Außerdem sind im Plugin mit Sicherheit alle Symbole aufgelöst. Daran sollte es also auch nicht liegen. Ich bin langsam echt am Verzweifeln, aber die Hoffnung stirbt zuletzt
Hier mein Interface:
Code: Alles auswählen
#ifndef BOOKPLUGIN_INC
#define BOOKPLUGIN_INC
#include <QtPlugin>
namespace obripper {
class Book;
class BookPlugin {
public:
virtual ~BookPlugin() {}
virtual bool processBook(const Book& book) = 0;
};
}
Q_DECLARE_INTERFACE(obripper::BookPlugin, "obripper.BookPlugin/0.1")
#endif /* ----- #ifndef BOOKPLUGIN_INC ----- */Code: Alles auswählen
#ifndef GALILEO_PLUGIN_INC
#define GALILEO_PLUGIN_INC
#include <obripper/bookplugin.h>
#include <QObject>
class Book;
class GalileoPlugin : public QObject, public obripper::BookPlugin {
Q_OBJECT
Q_INTERFACES(obripper::BookPlugin)
public:
bool processBook(const obripper::Book& book);
};
#endif /* ----- #ifndef GALILEO_PLUGIN_INC ----- */