Qt6 交叉编译 BeagleboneBlack(ARMHF)

问题描述 投票:0回答:1

我想为armhf编译Qt6.6。我用 Qt5.12.1 版本进行了编译。我正在用这个。但我需要与 Qt6.6 兼容的更新的库(例如 QCanDbcParser)。

我按照本指南为 beagleboneblack 编译 Qt5。

https://github.com/K3tan/BBB_QT5_guide

我在Qt论坛问过,但没有人回答。

https://forum.qt.io/topic/153851/qt6-beaglebone-black-armhf-build-issue/3

我下载了 gcc-linaro 进行交叉编译和 sysroot。我编辑了我的参数,例如 -hostprefix(因为 -hostprefix 未使用) 这是带有参数的 mt configure 命令。我只是想这个版本没有 GUI。

./configure     -platform linux-g++     -device linux-beagleboard-g++     -device-option CROSS_COMPILE=/home/arge13-ubuntu/Downloads/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-     -sysroot /home/arge13-ubuntu/Downloads/sysroot-glibc-linaro-2.25-2019.12-arm-linux-gnueabihf     -opensource -confirm-license     -release -make libs     -prefix /usr/local/qt6bbb     -skip multimedia     -skip qtlocation        -skip qtdatavis3d     -skip qtcharts     -skip qtwebengine     -no-kms -no-eglfs -no-xcb -no-accessibility -no-widgets -no-egl -no-openvg -no-qml-debug -no-opengl

我成功的构建config.summary是这样的:

Building on: linux-g++ (x86_64, CPU features: mmx sse sse2) Building for: devices/linux-beagleboard-g++ (arm, CPU features: neon) Target compiler: gcc 9.4.0 Configuration: cross_compile use_gold_linker compile_examples enable_new_dtags largefile neon precompile_header shared rpath release c++11 c++14 c++1z concurrent dbus no-pkg-config reduce_exports stl no-widgets 

有我的主机和目标计算机的信息。

但是在 qt6 构建中我刚刚得到这个:

 Building for: devices/linux-beagleboard-g++ (arm, CPU features: ) Compiler: gcc 7.5.0

当我想运行 make 命令时,我收到此错误:

Building CXX object qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/main.cpp.o /home/arge13-ubuntu/Downloads/qt-everywhere-src-6.6.1/qtbase/src/tools/syncqt/main.cpp:24:10: fatal error: filesystem: No such file or directory #include <filesystem> ^~~~~~~~~~~~ compilation terminated. make[2]: *** [qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/build.make:63: qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/main.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:14400: qtbase/src/tools/syncqt/CMakeFiles/syncqt.dir/all] Error 2 make: *** [Makefile:141: all] Error 2 

cross-compiling beagleboneblack qt6 armhf
1个回答
0
投票

对于 BBB 和较旧的内核,例如 4.4.x,我不相信您将拥有 GCC、glibc 和/或 make、cmake 和/或这个缺失的 .o 文件的最新版本。

请记住,每个新的 Qt 版本都会有版本更改。我记得在 Qt4 和 Qt5 上使用了很多 Python3 脚本,但 Qt5 上可用的是 Qt4 中不再起作用的更新。

我看到这么说...

我建议使用最新版本,您可以通过

apt
安装 Qt4/5/6 或任何您想要的版本。通常,beagleboard.org 提供他们通过外包或内部生产的硬件的图像。

到了

recent release
,我正在讨论他们的图像,这些图像可以在forum.beagleboard.org 和/或beagleboard.org 上找到。如果没有更新当前支持的映像和内核,很难说您当前的确切问题是什么。

现在,我不知道您是否正在使用 Qt(N) 之外的外设,但情况一直在变化。他们更新的图像和内核运行良好。我个人最近没有使用过Qt6。我多次使用PyQt4、PyQt5和Qt4/5,不得不更新到最新的SDK。这是一个常态。如果您要进行交叉编译,请使用您打算使用的机器。我什至不认为 Qt6 有 armhf 的 32 位版本。

© www.soinside.com 2019 - 2024. All rights reserved.