physicsx / qtonraspberrypi Goto Github PK
View Code? Open in Web Editor NEWQt Cross Compilation for Raspberry Pi and Jetson Nano/Nx/Orin
Qt Cross Compilation for Raspberry Pi and Jetson Nano/Nx/Orin
While trying to cross compile raspberry pi I'm getting the following error message
In file included from /home/Raspi/qt6_build/sysroot/usr/include/features.h:485, from /home/Raspi/CrossCompiler/cross-pi-gcc-10.2.0-0/arm-linux-gnueabihf/include/c++/10.2.0/arm-linux-gnueabihf/bits/os_defines.h:39, from /home/Raspi/CrossCompiler/cross-pi-gcc-10.2.0-0/arm-linux-gnueabihf/include/c++/10.2.0/arm-linux-gnueabihf/bits/c++config.h:518, from /home/Raspi/CrossCompiler/cross-pi-gcc-10.2.0-0/arm-linux-gnueabihf/include/c++/10.2.0/bits/stl_algobase.h:59, from /home/Raspi/CrossCompiler/cross-pi-gcc-10.2.0-0/arm-linux-gnueabihf/include/c++/10.2.0/memory:63, from /home/Raspi/qt6_build/qt/build/src/plugins/platformthemes/gtk3/QGtk3ThemePlugin_autogen/EWIEGA46WW/moc_qgtk3dialoghelpers.cpp:9, from /home/Raspi/qt6_build/qt/build/src/plugins/platformthemes/gtk3/QGtk3ThemePlugin_autogen/mocs_compilation.cpp:2: /usr/include/x86_64-linux-gnu/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or directory 7 | # include <gnu/stubs-32.h>
I don't understand why cmake is searching for include files in usr/include/x86_64-linux-gnu/gnu/ even though the cross compiler seems to be configured correctly
First off, kudos for the wonderful work! I'm having a hard time cross-compiling Qt6 and PySide6 for Raspberry Pi 4, so this repo REALLY helps me a lot.
I want to ask how you determine which packages are necessary for the custom built RaspberryPi OS. Did you go through the packages
files in the official Rpi OS repo and remove unrelated ones, then add the ones required in the Qt official cross-compiling tutorial?
Thank you!
After compilling. I create qtGui. compiling and copy to RPI
but run ./qtGui with error
./qtGui: error while loading shared libraries: libQt6Widgets.so.6: cannot open shared object file: No such file or directory
ldd qtGui
libQt6Widgets.so.6 => not found libQt6Gui.so.6 => not found
file in
/usr/local/qt6rpi/lib/libQt6Widgets.so.6
/usr/local/qt6rpi/lib/libQt6Gui.so.6
How fix this ?
Hello,
I get the below when setting up the Pi:
Unable to locate package libboost1.71-all-dev
E: Couldn't find any package by glob 'libboost1.71-all-dev'
E: Couldn't find any package by regex 'libboost1.71-all-dev'
E: Unable to locate package libsrtp0-dev
and in the second batch
E: Unable to locate package libsqlite0-dev
Thanks for the work and vid on this :-)
Thank You! I finished the step by step tutorial 。After that,I want to use QT Creator to design the QT project for Rpi4. I need to add QT to QT Versions whitch in QT Creator,I selected ~/qt6rpi/bin/qmake ,it's not working, the raising error is “Qmake Not Executable,The qmake executable /home/yyl/qt6rpi/bin/qmake could not be added.”,I don't know how to fix it. can you help me?
I really enjoyed your video of qt cross-compiling on Raspberry 4!
The environment you created is a little different, but I have Ubuntu OS installed on the Raspberry 4 board, and the source development PC OS is also using ubuntu.
However, the architecture is different, so it seems that cross-compilation is required.
my development pc is amd64 and raspberry is arm64 can you tell me how to cross compile? Are you thinking of creating content?
I came across an error when executing the following command:
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_FEATURE_eglfs_egldevice=ON -DQT_FEATURE_eglfs_gbm=ON
-DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF
-DQT_HOST_PATH=/home/ulas/qt6Host -DCMAKE_STAGING_PREFIX=/home/ulas/qt6rpi
-DCMAKE_INSTALL_PREFIX=/home/ulas/qt6crosspi -DCMAKE_PREFIX_PATH=/home/ulas/rpi-sdk/sysroot/usr/lib/
-DCMAKE_TOOLCHAIN_FILE=/home/ulas/qt-cross/toolchain.cmake /home/ulas/qt-cross/qtbase-everywhere-src-6.3.0/
Of course i changed the username.
The error is the following:
ERROR: The OpenGL functionality tests failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2], QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.
CMake Error at cmake/QtBuildInformation.cmake:92 (message):
Check the configuration messages for an error that has occurred.
Call Stack (most recent call first):
cmake/QtBuildInformation.cmake:11 (qt_configure_print_summary)
cmake/QtBuildInternals/QtBuildInternalsConfig.cmake:489 (qt_print_feature_summary)
CMakeLists.txt:193 (qt_build_repo_end)
I am quite new to Linux and have no idea how to fix this. Could you help me ?
I added the output and the error log files. Thanks !
hello, just working through this guide and ran into issues with the cmake portion.
used the below to install cmake as it said i didn't have it already and didnt understand the git clone bit (total noob)
wget https://github.com/Kitware/CMake/releases/download/v3.22.2/cmake-3.22.2.tar.gz
tar xf cmake-3.22.2.tar.gz
mkdir cbuild && cd cbuild
../cmake-3.22.2/bootstrap --prefix=/opt/cmake --parallel=4 && make -j4 && make install
from https://www.tal.org/tutorials/building-qt-62-raspberry-pi
this failed as I was missing openssh so ran
sudo apt install libssl-dev
this then fixed the issue and cmake installed
I have basically no idea what I am doing so if this is wrong Im sorry, just trying to get it all working so I can struggle bus my way through creating a simple qt application that will take me 6 months when it should take an afternoon.
Hello.
/home/owner/qt6rpi/bin/qt-configure-module .
Build files have been written to: /home/owner/qt-cross/qtdeclarative-everywhere-src-6.3.0
but
cmake --build . --parallel 4
[27/2654] Generating .qsb/scenegraph/shaders_ng/24bittextmask.frag.qsb
FAILED: src/quick/.qsb/scenegraph/shaders_ng/24bittextmask.frag.qsb /home/owner/qt-cross/qtdeclarative-everywhere-src-6.3.0/src/quick/.qsb/scenegraph/shaders_ng/24bittextmask.frag.qsb
cd /home/owner/qt-cross/qtdeclarative-everywhere-src-6.3.0/src/quick && /home/owner/qt6rpi/bin/qsb --glsl 100es,120,150 --hlsl 50 --msl 12 -b -O -s -o /home/owner/qt-cross/qtdeclarative-everywhere-src-6.3.0/src/quick/.qsb/scenegraph/shaders_ng/24bittextmask.frag.qsb /home/owner/qt-cross/qtdeclarative-everywhere-src-6.3.0/src/quick/scenegraph/shaders_ng/24bittextmask.frag
/bin/sh: 1: /home/owner/qt6rpi/bin/qsb: Exec format error
[30/2654] Automatic MOC for target Qml
ninja: build stopped: subcommand failed.
CMakeError.log
how fix this ?
When i try and execute:
$ sudo apt-get install make build-essential libclang-dev ninja-build gcc git bison
python3 gperf pkg-config libfontconfig1-dev libfreetype6-dev libx11-dev libx11-xcb-dev
libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev
libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev
libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev
libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev
libatspi2.0-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
I get the following error (and it is not recommended to change the libc6 version) so is there an other solution to fix this?
I already tried:
update and upgrade
and this
sudo dpkg --configure -a
sudo apt-get -f install
and some more things but they all did not work.
I’m trying to cmake the qt-cross directory. Ive followed the README up to this point successfully but when i run this command.
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_FEATURE_eglfs_egldevice=ON -DQT_FEATURE_eglfs_gbm=ON -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DQT_HOST_PATH=/home/ubuntu/qt6Host -DCMAKE_STAGING_PREFIX=/home/ubuntu/qt6rpi -DCMAKE_INSTALL_PREFIX=/home/ubuntu/qt6crosspi -DCMAKE_PREFIX_PATH=/home/ubuntu/rpi-sdk/sysroot/usr/lib/ -DCMAKE_TOOLCHAIN_FILE=/home/ubuntu/qt-cross/toolchain.cmake /home/ubuntu/qt-cross/qtbase-everywhere-src-6.6.0/
I get this output/error
-- The CXX compiler identification is unknown
-- The C compiler identification is unknown
-- The ASM compiler identification is unknown
-- Found assembler: /opt/rpi/rpi-gcc-8.3.0/bin/arm-linux-gnueabihf-gcc
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /opt/rpi/rpi-gcc-8.3.0/bin/arm-linux-gnueabihf-g++
-- Check for working CXX compiler: /opt/rpi/rpi-gcc-8.3.0/bin/arm-linux-gnueabihf-g++ - broken
CMake Error at /usr/local/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:60 (message):
The C++ compiler
"/opt/rpi/rpi-gcc-8.3.0/bin/arm-linux-gnueabihf-g++"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: '/home/ubuntu/qt-cross/CMakeFiles/CMakeScratch/TryCompile-haiOVG'
Run Build Command(s): /usr/bin/ninja -v cmTC_cb224
[1/2] /opt/rpi/rpi-gcc-8.3.0/bin/arm-linux-gnueabihf-g++ -fPIC -Wl,-rpath-link,/home/ubuntu/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/ubuntu/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -o CMakeFiles/cmTC_cb224.dir/testCXXCompiler.cxx.o -c /home/ubuntu/qt-cross/CMakeFiles/CMakeScratch/TryCompile-haiOVG/testCXXCompiler.cxx
FAILED: CMakeFiles/cmTC_cb224.dir/testCXXCompiler.cxx.o
/opt/rpi/rpi-gcc-8.3.0/bin/arm-linux-gnueabihf-g++ -fPIC -Wl,-rpath-link,/home/ubuntu/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/ubuntu/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -o CMakeFiles/cmTC_cb224.dir/testCXXCompiler.cxx.o -c /home/ubuntu/qt-cross/CMakeFiles/CMakeScratch/TryCompile-haiOVG/testCXXCompiler.cxx
qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
ninja: build stopped: subcommand failed.
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:73 (project)
-- Configuring incomplete, errors occurred!
I tried adding the lines suggested in #8, this did not change anything as I’m not using that toolchain I’m using the one specified in the readme.
In a few places you have your user name
"cmake -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DINPUT_opengl=es2 -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/home/ulas/qt6Host"
unfortunatly, this isnt seen onscreen and easily missed. might be worth making it something that can fail so its easy to figure out for us laymans.
Also, if i want to use QT creator to program, do i need to do anything special to install it after following your guide?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.