QPluginLoader Fehler beim laden eines Plugins
Verfasst: 6. November 2010 20:17
Ich habe versucht mir ein Plugin zu schreiben und dieses dann mit dem QPluginLoader wieder in einer anderen Anwendung zu laden.
Allerdings funktioniert das nicht. Beim QPluginLoader Objekt bekomme ich folgende Fehlermeldung zurück:
Das Plugin habe ich in einem C++Library Projekt des Qt Creators erstellt.
Weiß jemand was da der Fehler sein könnte?
Library:
testlib_global.h:
testlib.h
testlib.cpp
Konsolenprogramm:
Allerdings funktioniert das nicht. Beim QPluginLoader Objekt bekomme ich folgende Fehlermeldung zurück:
Code: Alles auswählen
"Plugin verification data mismatch in '/home/me/libtestlib.so.1.0.0'"
Weiß jemand was da der Fehler sein könnte?
Library:
testlib_global.h:
Code: Alles auswählen
#ifndef TESTLIB_GLOBAL_H
#define TESTLIB_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(TESTLIB_LIBRARY)
# define TESTLIBSHARED_EXPORT Q_DECL_EXPORT
#else
# define TESTLIBSHARED_EXPORT Q_DECL_IMPORT
#endif
#endif // TESTLIB_GLOBAL_H
Code: Alles auswählen
#ifndef TESTLIB_H
#define TESTLIB_H
#include "testlib_global.h"
class TESTLIBSHARED_EXPORT Testlib {
public:
Testlib();
int getSum();
};
#endif // TESTLIB_HCode: Alles auswählen
#include "testlib.h"
Testlib::Testlib() {
}
int Testlib::getSum() {
return 888;
}
Konsolenprogramm:
Code: Alles auswählen
#include <QtCore/QCoreApplication>
#include <QPluginLoader>
#include <QDebug>
int main(int argc, char *argv[]) {
QPluginLoader ploader;
QCoreApplication a(argc, argv);
ploader.setFileName("/home/me/libtestlib.so");
if(ploader.load() == true) {
if(ploader.isLoaded() == true) {
qDebug() << "is loaded";
}
else {
qDebug() << "not loaded";
}
}
qDebug() << ploader.errorString();
return a.exec();
}