Qt 5.15 undefined symbol
-
I have built the Qt 5.15.0 beta3 libraries for iMX6 and installed them on the target. I selected the dashboard example and tried to deploy it. I get the following:
14:16:49: Starting /usr/local/Qt-5.15.0-3Dxx/examples/quickcontrols/extras/dashboard/dashboard ...
QML debugging is enabled. Only use this in a safe environment.
QQmlApplicationEngine failed to load component
qrc:/qml/dashboard.qml:51:1: plugin cannot be loaded for module "QtQuick": Cannot load library /usr/local/Qt-5.15.0-3Dxx/qml/QtQuick.2/libqtquick2plugin.so: (/usr/local/Qt-5.15.0-3Dxx/qml/QtQuick.2/libqtquick2plugin.so: undefined symbol: _Z26qml_register_types_QtQuickv)
14:16:49: Remote process crashed.I used the same configure script to build the libraries that I used on 5.9.3 and 5.12.2 and 5.12.7. It looks like in 5.15 there were enhancements made to plugins. I have searched the library code and only find extern references to qml_register_types_QtQuick
<srcDir>/qtdeclarative/src/imports/qtquick2/plugin.cpp
60 QtQuick2Plugin(QObject *parent = nullptr) : QQmlExtensionPlugin(parent)
61 {
62 volatile auto registration = &qml_register_types_QtQuick;
63 Q_UNUSED(registration);
64 }lines 62 and 63 were added in 5.15 - so my questions are A) Where is the actual declaration and B) Do I need to create it? and if so where should these functions be defined?
Thanks
-
I too have the same problem witrh imx8 & imx6.
-
What we noticed at KDE neon is that the generated makefiles seem to have some dependency ordering problem. Specifically we ran
make docs
beforemake all
and that resulted in the*_qmltyperegistrations.cpp
not getting generated.
Reordering the make invocations solved it for us.