I want to compile Qt6.6 for armhf. I did this compile with Qt5.12.1 version. I am using this. But I need newer libraries (such as QCanDbcParser)that are compatible with Qt6.6.
I followed this guide for compiling Qt5 for beagleboneblack.
https://github.com/K3tan/BBB_QT5_guide
And I asked in Qt forum but no one answered.
https://forum.qt.io/topic/153851/qt6-beaglebone-black-armhf-build-issue/3
I downloaded gcc-linaro for cross compile and sysroot. I edited my parameters such as -hostprefix(because -hostprefix is not using) This is mt configure command with parameters. I just want to no gui for this build.
./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
My successful build config.summary is like this :
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
There is an information about my host computer and the target computer.
But in the qt6 build I am just getting this:
Building for: devices/linux-beagleboard-g++ (arm, CPU features: ) Compiler: gcc 7.5.0
And when I want to run make command I am getting this error:
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
For the BBB and older kernels, for instance 4.4.x, I do no believe you will have the most up-to-date versioning of GCC, glibc, and/or make, cmake, and/or this missing .o file.
And remember, with every new Qt version, there are version changes. I remember using a lot of scripting in Python3 on Qt4 and Qt5 but what was available on Qt5 was an update to what was not working any longer from Qt4.
I saw that to say this...
I suggest using a recent release where you can install the Qt4/5/6 or whatever versioning you want via
apt. Usually, beagleboard.org has images available for their hardware they produce through outsourcing or in house.And by
recent release, I am discussing their images which can be found on the forum.beagleboard.org and/or at beagleboard.org. It is hard to say what your exact issue is currently without an update to the image and kernel that are currently supported.Now, I do not know if you are using peripherals outside of Qt(N) but things keep changing. Their updated imagery and kernels work well. I have not personally used Qt6 in recent times. I used PyQt4 and PyQt5 and Qt4/5 many times and had to update to the latest SDK. This is a norm. If you are Cross-Compiling, use the machine you intend to use.
I do not even think Qt6 has a 32-bit versioning for armhf, is incorrect andaptwill install it if you are using Bookworm.I think this will help you: https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5 shows differences from Qt4 to 5.