Qt 5.6 and 5.7: difference in handling plugins
-
Is there a difference in handling plugins in 5.7 compared to previous Qt versions? My program that uses plugins and ran without problems for 4 years, complains when loading my own plugins stating Plugin verification data mismatch since upgraded to 5.7.
All sources recompiled several times, recompilation seems fine, pluginloader complains with the message Plugin verification data mismatch
Suggestions?
janK -
Hi and welcome to devnet,
Check that you are indeed loading the plugins you built.
You can get more details about what is happening defining the QT_DEBUG_PLUGINS environnement variable.
-
Thanks for the hint. Setting QT_DEBUG_PLUGINS as env variable generates a lot of output on program start up. However, there is no additional output when the QPluginLoader is executed with - as parameter - the filename of the plugin. I cross compiled the software - using mingw64-32 - and cross compiling the same set of sources gives windows executable that run perfectly. The windows version of Qt is pre-5.7.
J -
What exact version are you running and is failing ?
On what OS ?
With which compiler ? -
@SGaist It took a while, but I found that omitting the test on the version of Qt (see below) works fine. Strange, since the test itself (I tested it) yields true. I run Fedora 25 gcc version 6.2.1 20160916 (Red Hat 6.2.1-2) (GCC) and Qt 5.7. So I can circumvent the error, but I cannot explain it. (The version test is there to allow compilation with Qt4 and Qt5)
JanK
The header of the class in the plugin reads
class remote: public rigInterface, public Ui_Form {
Q_OBJECT
Q_INTERFACES (rigInterface)
#if QT_VERSION >= 0x050000
Q_PLUGIN_METADATA (IID "remote")
#endif -
Can you re-produce that with a minimal code sample ?