Error when compiling for rpi
Unsolved
General and Desktop
-
I have followed the cross compiling tutorial for qt6 on the qt website here.
When compiling I get this error
/usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `non-virtual thunk to QQuickTableViewPrivate::scrollTowardsSelectionPoint(QPointF const&, QSizeF const&)' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/qt-raspi/lib/libQt6QuickControls2.so.6.5.0: undefined reference to `QQuickTheme::~QQuickTheme()@Qt_6_PRIVATE_API' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/qt-raspi/lib/libQt6QuickControls2.so.6.5.0: undefined reference to `QQuickTheme::QQuickTheme()@Qt_6_PRIVATE_API' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/qt-raspi/lib/libQt6QuickControls2.so.6.5.0: undefined reference to `QQuickTheme::setFont(QQuickTheme::Scope, QFont const&)@Qt_6_PRIVATE_API' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/qt-raspi/lib/libQt6QuickControls2.so.6.5.0: undefined reference to `QQuickPopup::popupItem() const@Qt_6_PRIVATE_API' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `QQmlComponentPrivate::setInitialProperties(QV4::ExecutionEngine*, QV4::QmlContext*, QV4::Value const&, QV4::Value const&, RequiredProperties&, QObject*)' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/qt-raspi/lib/libQt6QuickControls2.so.6.5.0: undefined reference to `QQuickTheme::instance()@Qt_6_PRIVATE_API' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `non-virtual thunk to QQuickTableViewPrivate::setSelectionEndPos(QPointF const&)' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `non-virtual thunk to QQuickTableViewPrivate::setSelectionStartPos(QPointF const&)' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `non-virtual thunk to QQuickTableViewPrivate::selectionRectangle() const' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `non-virtual thunk to QQuickTableViewPrivate::selectionPointerHandlerTarget() const' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `non-virtual thunk to QQuickFlickablePrivate::itemGeometryChanged(QQuickItem*, QQuickGeometryChange, QRectF const&)' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/qt-raspi/lib/libQt6QuickControls2.so.6.5.0: undefined reference to `QQuickThemePrivate::instance@Qt_6_PRIVATE_API' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/qt-raspi/lib/libQt6QuickControls2.so.6.5.0: undefined reference to `QQuickPopup::staticMetaObject@Qt_6_PRIVATE_API' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `non-virtual thunk to QQuickTableViewPrivate::normalizeSelection()' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/qt-raspi/lib/libQt6QuickControls2.so.6.5.0: undefined reference to `QQuickTheme::setPalette(QQuickTheme::Scope, QPalette const&)@Qt_6_PRIVATE_API' /usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: /home/imseng/cc_wiki/rpi-sysroot/usr/lib/aarch64-linux-gnu/libQt6QuickTemplates2.so.6: undefined reference to `non-virtual thunk to QQuickTableViewPrivate::clearSelection()' collect2: error: ld returned 1 exit status gmake[2]: *** [CMakeFiles/rfid_cloner-gui.dir/build.make:204: rfid_cloner-gui] Error 1 gmake[1]: *** [CMakeFiles/Makefile2:86: CMakeFiles/rfid_cloner-gui.dir/all] Error 2 gmake: *** [Makefile:91: all] Error 2
What I find strange is that I was able to cross compile a different project no problem with the exact same kit and CMakeLists.txt file.
Here is the CMakeLists.txt for reference
cmake_minimum_required(VERSION 3.5) project(PROJECT_NAME LANGUAGES CXX) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt6 COMPONENTS Core Quick SerialPort VirtualKeyboard QuickControls2 REQUIRED) qt_standard_project_setup() set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wl,-rpath-link, ${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} -L${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wl,-rpath-link,${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} -L${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}") set(SOURCES main.cpp) qt_add_resources(SOURCES qml.qrc) add_executable(PROJET_NAME main.cpp backend.cpp ${SOURCES}) target_link_libraries(rfid_cloner-gui -lm -ldl Qt6::Core Qt6::Quick Qt6::SerialPort Qt6::VirtualKeyboard Qt6::QuickControls2)
I read that it is because the libraries are built with a different compiler than I am using for my project but I don't see how this could be the case if it works for my other project and the CMakeLists.txt are identical (besides project name). Any help is greatly appreciated.