Cross-compile Qt6.8 for RPi4 on Ubuntu 22.04 failed in adding QML module?
Unsolved
Installation and Deployment
-
Hi all,
I am following this tutorial to cross-compile Qt6.8 on Raspberry Pi 4B, it works fairly well except at the very last step to add the QML module. link text
rolly@legion-r9000p-arx8:~/workspace/qt-rpi-cross-compilation/qt6/pi-build$ cmake --build . --parallel 8 [2836/3150] Building CXX object src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/qquickcolordialogutils.cpp.o /home/rolly/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/src/quickdialogs/quickdialogsquickimpl/qquickcolordialogutils.cpp: In function ‘std::pair<double, double> getSaturationAndValue(qreal, qreal)’: /home/rolly/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/src/quickdialogs/quickdialogsquickimpl/qquickcolordialogutils.cpp:6:80: note: parameter passing for argument of type ‘std::pair<double, double>’ when C++17 is enabled changed to match C++14 in GCC 10.1 6 | std::pair<qreal, qreal> getSaturationAndValue(qreal saturation, qreal lightness) | ^ [2837/3150] Building CXX object src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/qquickabstractcolorpicker.cpp.o /home/rolly/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/src/quickdialogs/quickdialogsquickimpl/qquickabstractcolorpicker.cpp: In member function ‘void QQuickAbstractColorPicker::setColor(const QColor&)’: /home/rolly/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/src/quickdialogs/quickdialogsquickimpl/qquickabstractcolorpicker.cpp:120:81: note: parameter passing for argument of type ‘std::pair<double, double>’ when C++17 is enabled changed to match C++14 in GCC 10.1 120 | const auto sl = getSaturationAndLightness(c.hsvSaturationF(), c.valueF()); | ^ [2841/3150] Building CXX object src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/qquickcolordialogimpl.cpp.o /home/rolly/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/src/quickdialogs/quickdialogsquickimpl/qquickcolordialogimpl.cpp: In member function ‘void QQuickColorDialogImpl::setColor(const QColor&)’: /home/rolly/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/src/quickdialogs/quickdialogsquickimpl/qquickcolordialogimpl.cpp:210:85: note: parameter passing for argument of type ‘std::pair<double, double>’ when C++17 is enabled changed to match C++14 in GCC 10.1 210 | const auto sl = getSaturationAndLightness(c.hsvSaturationF(), c.valueF()); | ^ [2846/3150] Building CXX object src/quickdialogs/quickdialogsquickimpl/CMakeFiles/QuickDialogs2QuickImpl.dir/qquickcolorinputs.cpp.o /home/rolly/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/src/quickdialogs/quickdialogsquickimpl/qquickcolorinputs.cpp: In member function ‘void QQuickColorInputs::setColor(const QColor&)’: /home/rolly/workspace/qt-rpi-cross-compilation/qt6/src/qtdeclarative-everywhere-src-6.8.0/src/quickdialogs/quickdialogsquickimpl/qquickcolorinputs.cpp:26:81: note: parameter passing for argument of type ‘std::pair<double, double>’ when C++17 is enabled changed to match C++14 in GCC 10.1 26 | const auto sv = getSaturationAndValue(c.hslSaturationF(), c.lightnessF()); | ^ [3132/3150] Linking CXX executable bin/qmlscene FAILED: bin/qmlscene : && /opt/cross-pi-gcc/bin/aarch64-linux-gnu-g++ --sysroot=/home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot -isystem=/usr/include -isystem=/usr/local/include -isystem=/usr/include/aarch64-linux-gnu -pipe -O2 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-rpath-link=/home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu -Wl,-rpath-link=$HOME/qt6/pi/lib -Wl,-z,relro,-z,now -Wl,--enable-new-dtags -fPIE -pie tools/qmlscene/CMakeFiles/qmlscene.dir/qmlscene_autogen/mocs_compilation.cpp.o tools/qmlscene/CMakeFiles/qmlscene.dir/main.cpp.o -o bin/qmlscene -Wl,-rpath,/home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot:/home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib:/home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi-build/lib:/usr/lib/aarch64-linux-gnu: /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Widgets.so.6.8.0 /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libxkbcommon.so lib/libQt6Quick.so.6.8.0 /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6OpenGL.so.6.8.0 lib/libQt6QmlMeta.so.6.8.0 lib/libQt6QmlModels.so.6.8.0 lib/libQt6QmlWorkerScript.so.6.8.0 lib/libQt6Qml.so.6.8.0 /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Network.so.6.8.0 /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Gui.so.6.8.0 /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libGLESv2.so /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libEGL.so /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Core.so.6.8.0 -Wl,-rpath-link,/home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib && : /opt/cross-pi-gcc/lib/gcc/aarch64-linux-gnu/12.2.0/../../../../aarch64-linux-gnu/bin/ld: /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6DBus.so.6: undefined reference to `QtPrivate::CompatPropertySafePoint::CompatPropertySafePoint(QBindingStatus*, QUntypedPropertyData*)@Qt_6' /opt/cross-pi-gcc/lib/gcc/aarch64-linux-gnu/12.2.0/../../../../aarch64-linux-gnu/bin/ld: /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Gui.so.6.8.0: undefined reference to `operator<<(QDebug, QDBusObjectPath const&)@Qt_6' /opt/cross-pi-gcc/lib/gcc/aarch64-linux-gnu/12.2.0/../../../../aarch64-linux-gnu/bin/ld: /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6DBus.so.6: undefined reference to `QtPrivate::QPropertyBindingData::notifyObserver_helper(QUntypedPropertyData*, QBindingStorage*, QPropertyObserverPointer, QVarLengthArray<QBindingObserverPtr, 256ll>&) const@Qt_6' collect2: error: ld returned 1 exit status [3133/3150] Linking CXX executable bin/qml FAILED: bin/qml : && /opt/cross-pi-gcc/bin/aarch64-linux-gnu-g++ --sysroot=/home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot -isystem=/usr/include -isystem=/usr/local/include -isystem=/usr/include/aarch64-linux-gnu -pipe -O2 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-rpath-link=/home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu -Wl,-rpath-link=$HOME/qt6/pi/lib -Wl,-z,relro,-z,now -Wl,--enable-new-dtags -fPIE -pie tools/qml/CMakeFiles/qml.dir/qml_autogen/mocs_compilation.cpp.o tools/qml/CMakeFiles/qml.dir/main.cpp.o tools/qml/CMakeFiles/qml.dir/qml_qmltyperegistrations.cpp.o tools/qml/CMakeFiles/qml.dir/.qt/rcc/qrc_qmake_QmlRuntime_Config.cpp.o tools/qml/CMakeFiles/qml.dir/.rcc/qmlcache/qml_qmlcache_loader.cpp.o tools/qml/CMakeFiles/qml.dir/.rcc/qmlcache/qml_default_qml.cpp.o tools/qml/CMakeFiles/qml.dir/.rcc/qmlcache/qml_resizeToItem_qml.cpp.o tools/qml/CMakeFiles/qml.dir/.rcc/qmlcache/qml_ResizeItemToWindow_qml.cpp.o tools/qml/CMakeFiles/qml.dir/.rcc/qmlcache/qml_ResizeWindowToItem_qml.cpp.o tools/qml/CMakeFiles/qml.dir/.qt/rcc/qrc_qml_raw_qml_0.cpp.o -o bin/qml -Wl,-rpath,/home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot:/home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib:/home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi-build/lib:/usr/lib/aarch64-linux-gnu: /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Widgets.so.6.8.0 lib/libQt6Qml.so.6.8.0 /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Network.so.6.8.0 /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Gui.so.6.8.0 /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libGLESv2.so /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libEGL.so /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Core.so.6.8.0 -Wl,-rpath-link,/home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib && : /opt/cross-pi-gcc/lib/gcc/aarch64-linux-gnu/12.2.0/../../../../aarch64-linux-gnu/bin/ld: /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6DBus.so.6: undefined reference to `QtPrivate::CompatPropertySafePoint::CompatPropertySafePoint(QBindingStatus*, QUntypedPropertyData*)@Qt_6' /opt/cross-pi-gcc/lib/gcc/aarch64-linux-gnu/12.2.0/../../../../aarch64-linux-gnu/bin/ld: /home/rolly/workspace/qt-rpi-cross-compilation/qt6/pi/lib/libQt6Gui.so.6.8.0: undefined reference to `operator<<(QDebug, QDBusObjectPath const&)@Qt_6' /opt/cross-pi-gcc/lib/gcc/aarch64-linux-gnu/12.2.0/../../../../aarch64-linux-gnu/bin/ld: /home/rolly/workspace/qt-rpi-cross-compilation/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6DBus.so.6: undefined reference to `QtPrivate::QPropertyBindingData::notifyObserver_helper(QUntypedPropertyData*, QBindingStorage*, QPropertyObserverPointer, QVarLengthArray<QBindingObserverPtr, 256ll>&) const@Qt_6' collect2: error: ld returned 1 exit status [3139/3150] Building CXX object src/assets/downloader/CMakeFiles/QmlAssetDownloader.dir/cmake_pch.hxx.gch ninja: build stopped: subcommand failed.
I doubt that if I missed any of steps of the tutorial? but the qtshadertools-everywhere-src-6.8.0 step did finish compilation successfully.
Thanks,
rolly