{"id":14982628,"url":"https://github.com/physicsx/qtonraspberrypi","last_synced_at":"2025-04-05T13:05:57.157Z","repository":{"id":44371242,"uuid":"314914300","full_name":"PhysicsX/QTonRaspberryPi","owner":"PhysicsX","description":"Qt Cross Compilation for Raspberry Pi and Jetson Nano/Nx/Orin","archived":false,"fork":false,"pushed_at":"2025-03-25T23:34:43.000Z","size":2610,"stargazers_count":98,"open_issues_count":0,"forks_count":47,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-05T13:05:52.232Z","etag":null,"topics":["cross-compilation","jetson","jetson-nano","jetson-orin","jetson-orin-nano","jetson-tx2","jetson-xavier","jetson-xavier-nx","opencv","opencv4","qt5","qt5-gui","qt6","qt6-application","qt6-gui","raspberry-pi","raspberry-pi-3","raspberry-pi-4"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PhysicsX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-21T22:23:19.000Z","updated_at":"2025-03-25T23:34:46.000Z","dependencies_parsed_at":"2024-03-27T20:42:08.549Z","dependency_job_id":"7149e923-ba74-41da-8672-ef87fce7104e","html_url":"https://github.com/PhysicsX/QTonRaspberryPi","commit_stats":{"total_commits":114,"total_committers":2,"mean_commits":57.0,"dds":"0.052631578947368474","last_synced_commit":"1ed9dcebbf5bd72237fce46990c4bcacb5932f1f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysicsX%2FQTonRaspberryPi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysicsX%2FQTonRaspberryPi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysicsX%2FQTonRaspberryPi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhysicsX%2FQTonRaspberryPi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PhysicsX","download_url":"https://codeload.github.com/PhysicsX/QTonRaspberryPi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339155,"owners_count":20923014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-compilation","jetson","jetson-nano","jetson-orin","jetson-orin-nano","jetson-tx2","jetson-xavier","jetson-xavier-nx","opencv","opencv4","qt5","qt5-gui","qt6","qt6-application","qt6-gui","raspberry-pi","raspberry-pi-3","raspberry-pi-4"],"created_at":"2024-09-24T14:05:46.155Z","updated_at":"2025-04-05T13:05:57.138Z","avatar_url":"https://github.com/PhysicsX.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cross compilation of Qt6.8.2 and OpenCV For Raspberry pi 3/4/5 with Docker(Base and QML packages) and Remote Debugging with Vscode\nIn this content, you will find a way to cross-compile Qt 6.8.2 and Opencv (4.9.0) for Raspberry Pi hardware using Docker isolation.\nThis is a complete tutorial that you can learn how to debug the application with vscode.\n\nThe primary advantage of Docker is its ability to isolate the build environment. This means you can build Qt without needing a Raspberry Pi (real hardware) and regardless of your host OS type, as long as you can run Docker (along with QEMU). Additionally, you won’t need to handle dependencies anymore (and I’m not kidding). This approach is easier and less painful.\n\nWatch the video for more details:\n\n[![Youtube video link](https://img.youtube.com/vi/5XvQ_fLuBX0/0.jpg)](//www.youtube.com/watch?v=5XvQ_fLuBX0?t=0s \"ulas dikme\")\n\nFor opencv [Compilation Opencv with Docker](#compilation-opencv-with-docker) \u003ca name=\"Compilation Opencv with Docker\"\u003e\u003c/a\u003e\n\nFor remote debugging and follow up [click](https://www.youtube.com/watch?v=RWNWAMT5UkM?t=0s).\n\nI tested this on Ubuntu 22 and 20. Regardless of the version, Qt is successfully compiled and builds a 'Hello World' application (with QML) for the Raspberry Pi.\n\nThe steps will show you how to prepare your build environment (in this case, Ubuntu) and run the Docker commands to build Qt 6.8.2. But as I mentioned, you don't need to use Ubuntu; as long as you can run the Docker engine and QEMU, you should achieve the same result on any platform.\n\nIf you want to check with virtual machine you can find tutorial [Here](https://github.com/PhysicsX/QTonRaspberryPi/tree/main/QtRaspberryPi6.6.1). Steps are quite same, for this case you need raspberry pi. It is classical way that you can find in this repository. Or If you want more infromation, check old videos about it.\nIf you want to understand theory for cross complation of Qt for rasppberry pi without Docker in detail, you can watch this [video](https://www.youtube.com/watch?v=oWpomXg9yj0?t=0s) which shows how to compile Qt 6.3.0 for raspberry pi(only toolchain is not compiled).\n\n# Install Docker\nNOTE: If you see error during installation, then search on the internet how to install docker and qemu for your os. During time this steps can be different as you expect.\n\nI have ubuntu 24 (according to ubuntu version steps can vary)\n```bash\nulas@ulas:~$ lsb_release -a\nNo LSB modules are available.\nDistributor ID:\tUbuntu\nDescription:\tUbuntu 24.04.1 LTS\nRelease:\t24.04\nCodename:\tnoble\n```\n\nLets install dependencies.\n\n```bash\n# Add Docker's official GPG key:\n$ sudo apt-get update\n$ sudo apt-get install ca-certificates curl\n$ sudo install -m 0755 -d /etc/apt/keyrings\n$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc\n$ sudo chmod a+r /etc/apt/keyrings/docker.asc\n```\n\nSet up stable repository for docker\n```bash\necho \\\n  \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \\\n  $(. /etc/os-release \u0026\u0026 echo \"$VERSION_CODENAME\") stable\" | \\\n  sudo tee /etc/apt/sources.list.d/docker.list \u003e /dev/null\n$ sudo apt-get update\n```\nInstall related packages for Docker\n\n```bash\nsudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\n```\nVerify installation with hello-world image\n\n```bash\n$ sudo docker run hello-world\n```\n\nLets manage user permission for Docker. Docker uses UDS so permission is needed.\n```bash\n$ sudo usermod -aG docker ${USER}\n$ su - ${USER}\n$ sudo systemctl enable docker\n```\n\nWe also need to install QEMU, with it, it is possible to emulate/run raspbian os like it is on real raspberry pi 4 hardware\n\n```bash\n$ sudo apt install qemu-system-x86 qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager\n```\n\nEnable and Start Libvirt:\n```bash\n$ sudo systemctl enable libvirtd\n$ sudo systemctl start libvirtd\n```\n\nAdd Your User to the Libvirt and KVM Groups:\n\n```bash\n$ sudo usermod -aG libvirt $(whoami)\n$ sudo usermod -aG kvm $(whoami)\n```\n\nVerify Installation:\n```bash\n$ virsh list --all\n```\n\nYou should see an empty list.\n\nSet up QEMU for multi-architecture support\n```bash\n$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes\n```\n\nCreate and use a new Buildx builder instance\n```bash\n$ docker buildx create --use --name mybuilder\n$ docker buildx inspect mybuilder --bootstrap\n```\n\nVerify Buildx installation\n```bash\n$ docker buildx ls\n```\n\n# Compile Qt 6.8.2 with Docker\n\nWhen I experimented with this idea, I expected to create a single Dockerfile with different stages, allowing me to switch between them even if they involved different hardware architectures. However, it didn't work as expected, so I ended up creating two separate Dockerfiles.\n\nFirst, we will create a Raspbian (Debian-based) environment and emulate it. Then, we need to copy the relevant headers and libraries for later compilation\n\nRun the command to create rasbian(debian) image.\n```bash\n$ docker buildx build --platform linux/arm64 --load -f DockerFileRasp -t raspimage .\n```\nWhen it finishes, you will find a file named 'rasp.tar.gz' in the '/build' directory within the image.\nLet's copy it to the same location where the Dockerfile exists. Just copy it to where you pulled the branch.\nTo copy the file, you need to create a temporary container using the 'create' command. You can delete this temporary container later if you wish\n```bash\n$ docker create --name temp-arm raspimage\n$ docker cp temp-arm:/build/rasp.tar.gz ./rasp.tar.gz\n```\nThis rasp.tar.gz file will be copied by the another image that is why location of the tar file is important. You do not need to extract it. Do not touch it.\n\nNow it is time to create ubuntu 22 image and compile the Qt 6.8.2.\nIn one of the previous commands you used DockerFileRasp, this file is written for raspberry pi, now we are going to use only Dockerfile which is default name that means we do not need to specify path or name explicitly. But if  you want you can change the name, you already now how you can pass the file name (with -f)\n\n```bash\n$ docker build -t qtcrossbuild .\n```\n\nAs you see there is no buildx in this command because buildx uses qemu and we do not need qemu for x86 ubuntu. After some time, ( I tested with 16GB RAM and it took around couple of hours) you see that image will be created without an error. After this, you can find HelloQt6 binary which is ready to run on Raspberry pi, in the /build/project directory in the image. So lets copy it. As we did before, you need to create temporary container to copy it.\n\n```bash\n$ docker create --name tmpbuild qtcrossbuild\n$ docker cp tmpbuild:/build/project/HelloQt6 ./HelloQt6\n```\n\nAs you see, example application is compiled for arm.\n```bash\nulas@ulas:~/QTonRaspberryPi$ file HelloQt6 \nHelloQt6: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, with debug_info, not stripped\n```\n\nTo test the hello world, you need to copy and send the compiled qt binaries in the image.\n```bash\n$ docker cp tmpbuild:/build/qt-pi-binaries.tar.gz ./qt-pi-binaries.tar.gz\n$ scp qt-pi-binaries.tar.gz ulas@192.168.16.20:/home/ulas/\n$ ssh rasp@192.168.16.25\n$ ulas@raspberrypi:~ sudo mkdir /usr/local/qt6\n$ ulas@raspberrypi:~ sudo tar -xvf qt-pi-binaries.tar.gz -C /usr/local/qt6\n$ ulas@raspberrypi:~ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/qt6/lib/\n```\nExtract it under /usr/local or wherever you want and do not forget to add the path to LD_LIBRARY_PATH in case of path is not in the list.\n\n```bash\nulas@raspberrypi:~ $ ./HelloQt6\nHello world\n```\n# Compilation Opencv with Docker\nVideo:\n\n[![Youtube video link](https://img.youtube.com/vi/1dr1e2saxpo/0.jpg)](//www.youtube.com/watch?v=1dr1e2saxpo?t=0s \"ulas dikme\")\n\nTo enable opencv (4.9.0) cross compilation during the x86 image creation, it is needed to make BUILD_OPENCV flag ON.\n\n```bash\ndocker build --build-arg BUILD_OPENCV=ON -t qtcrossbuild .\n```\n\nThis will compile the opencv with Qt. Qt will be compiled for default.\n\nTo copy opencv libraries you need to have container from this image like above. You can use the same container.\n\n```bash\n$ docker create --name tmpbuild qtcrossbuild\n$ docker cp tmpbuild:/build/QtOpencvExample/build/QtOpencvHello  ./QtOpencvHello \n$ file QtOpencvHello\nQtOpencvExample/build/QtOpencvHello: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=e846e63fec33e431bfdc1e70ad6d6b10c138992e, for GNU/Linux 3.7.0, not stripped\n\n```\nThen you can copy the tar file to raspberry pi.\n```bash\n$ docker cp tmpbuild:/build/opencv-binaries.tar.gz ./opencv-binaries.tar.gz\n$ scp opencv-binaries.tar.gz ulas@192.168.16.20:/home/ulas/\n$ scp QtOpencvHello ulas@192.168.16.20:/home/ulas/ \n$ ssh rasp@192.168.16.25\n$ ulas@raspberrypi:~ sudo mkdir /usr/local/opencv\n$ ulas@raspberrypi:~ sudo tar -xvf opencv-binaries.tar.gz -C /usr/local/opencv\n$ ulas@raspberrypi:~ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv/lib/\n```\nWhen you run the application after setting path correctly. Note that you need to extract Qt binaries and export the path for Qt also, becuase example needs Qt and Opencv together.\n\n```bash\n$ ./QtOpencvHello\n```\n\u003cimg src=\"https://github.com/user-attachments/assets/b5e47b9e-b84a-4439-aeca-c728e0edf699\" width=\"400\"\u003e\n\n\n# Debugging of compilation\nNothing is free! Okay now we find a nice way to compile or build Qt applications but there is a tradeoff. Debugging is really hard. So If you want to change Dockerfile then first you sould build or test the steps on VM to be sure. If you know what you are doing then do not worry.\n\nEach RUN commands output are printed in Build.log file that you can find in the build directory of image.\n\n```bash\ndocker cp tmpbuild:/build.log ./build.log\n```\n\n# Cross Development and Remote Debugging of Application with vscode\n\nDetailed information:\n\n[![Youtube video link](https://img.youtube.com/vi/RWNWAMT5UkM/0.jpg)](//www.youtube.com/watch?v=RWNWAMT5UkM?t=0s \"ulas dikme\")\n\nNow, you can build your application by simply adding your files to the project directory and running the command:\n\n```bash\n$ docker build -t qtcrossbuild .\n```\n\nIf you do not modify the Dockerfile, the above command will only compile the code. However, even if you don't alter the Dockerfile, if there is any update to Ubuntu, Docker will rebuild the image starting from the Ubuntu layer. This means it will take more time. To compile the Qt application you wish to develop, this is not necessary. There is another Dockerfile, Dockerfile.app, which allows you to compile only the application. If you examine the contents of this file, you will find:\n\n```bash\nFROM qtcrossbuild:latest\n```\nThis indicates that if you build an image with Dockerfile.app, it will utilize the qtcrossbuild image. There's no need to run qtcrossbuild again. \n\nIf you run:\n\n```bash\n$ docker build -f Dockerfile.app -t final-app .\n```\nWith the final-app image, you can create a container solely for compilation purposes. Docker caches the previous commands, so when you run this command, it will not start from scratch but only execute the latest command where you wish to compile your application. The compilation process will begin in the image, then, as before, create a temporary container and copy your binary:\n\n```bash\n$ docker create --name tmpapp final-app\n$ docker cp tmpapp:/projectPath/HelloQt6 ./HelloQt6\n```\nIf you do not want to use the cache, or if you want to start building the same image anew, use:\n```bash\n$ docker build -t qtcrossbuild . --no-cache\n```\n\n~~However, if you prefer not to follow these steps, I have shared the tar files that I compiled for the Raspberry Pi, along with the related sysroot and toolchain. You can download them. In this case, you will need to have the correct dependencies. It's your choice.~~\n\nI assume you have vscode already, we need some dependencies on the host for remote debugging with vscode.\n```bash\n$ sudo apt-get install sshpass gdb-multiarch\n```\nsshpass is needed to start gdbserver on the target remotely, and gdb-multiarch is the debugger itself for the cross-compiled binary.\n\nIn VS Code, you will need the \"C/C++ IntelliSense, debugging, and code browsing\" extension.\n\n![Qml Remote Debugging with vscode](https://ulasdikme.com/yedek/installedExtensions.png)\n\nOn the target, install gdbserver.\n```bash\n$ sudo apt-get install gdbserver\n```\n\nTo debug the cross-compiled application, which was compiled in the container, we can use VS Code. The steps are simple:\n\n1. Compile the application using Dockerfile.app.\n2. Copy the binary of the application to the target.\n3. Run gdbserver on the target before debug process.\n4. Connect to the server from the host using VS Code, then start debugging.\n\nThere are multiple ways to implement these steps. I have created a bash script called helperTasks.sh. This script contains commands to compile the application, send the binary to the target, and start gdbserver. The script acts as an intermediary between VS Code and the user. When you want to call one of these functionalities, VS Code may access them through tasks.json. As mentioned, there are many ways to do this; you can directly update tasks.json as well. Tasks.json is located under .vscode in the repository. If you start VS Code directly in the root of the repository, it will automatically detect related files, and everything will be ready to go.\n\nFor debugging itself, VS Code needs a launch.json configuration file. In this file, you need to specify the path of the application and other related options. However, be careful; the paths for the binary should be on the host, so a copy of the binary must also exist on the host.\n\nOne trick to note is the importance of the checkout path. When you compile the application in the container (with project and projectQml as ready-to-use examples), the binary contains information about the absolute path of the project files, which were copied from the host to the container. It has the path in the container, and when you copy it to the host, it doesn't recognize that the path has changed. Therefore, you need to copy the binary to the exact same location on the host, or you need to change the path in the container. That's why I created a variable for the path in both Dockerfile.app and helperTasks.sh. Please check and update them accordingly.\n\n![Qml Remote Debugging with vscode](https://ulasdikme.com/yedek/qt6DebugVscodeScreenShot.png)\n\nFor more detalied information please watch the video about debugging.\n\n\nEnjoy.\n\n# Configuration parameters\n\nFor reference the qt is compiled with below parameters in this example \n\n```bash\n-- Configuration summary shown below. It has also been written to /build/qt6/pi-build/qtbase-everywhere-src-6.8.2/config.summary\n-- Configure with --log-level=STATUS or higher to increase CMake's message verbosity. The log level does not persist across reconfigurations.\n \n-- Configure summary:\n\nBuilding for: devices/linux-rasp-pi4-aarch64 (arm64, CPU features: cx16 neon)\nCompiler: gcc 12.2.0\nBuild options:\n  Mode ................................... release\n  Optimize release build for size ........ no\n  Fully optimize release builds (-O3) .... no\n  Building shared libraries .............. yes\n  Using ccache ........................... no\n  Unity Build ............................ no\n  Using new DTAGS ........................ yes\n  Relocatable ............................ yes\n  Using precompiled headers .............. yes\n  Using Link Time Optimization (LTCG) .... no\n  Using Intel CET ........................ no\n  Target compiler supports:\n    ARM Extensions ....................... NEON\n  Sanitizers:\n    Addresses ............................ no\n    Threads .............................. no\n    Memory ............................... no\n    Fuzzer (instrumentation only) ........ no\n    Undefined ............................ no\n  Build parts ............................ libs\n  Install examples sources ............... no\nQt modules and options:\n  Qt Concurrent .......................... yes\n  Qt D-Bus ............................... yes\n  Qt D-Bus directly linked to libdbus .... yes\n  Qt Gui ................................. yes\n  Qt Network ............................. yes\n  Qt PrintSupport ........................ yes\n  Qt Sql ................................. yes\n  Qt Testlib ............................. yes\n  Qt Widgets ............................. yes\n  Qt Xml ................................. yes\nSupport enabled for:\n  Using pkg-config ....................... yes\n  Using vcpkg ............................ no\n  udev ................................... yes\n  OpenSSL ................................ yes\n    Qt directly linked to OpenSSL ........ no\n  OpenSSL 1.1 ............................ no\n  OpenSSL 3.0 ............................ yes\n  Using system zlib ...................... yes\n  Zstandard support ...................... yes\n  Thread support ......................... yes\nCommon build options:\n  Linker can resolve circular dependencies  yes\nQt Core:\n  backtrace .............................. yes\n  DoubleConversion ....................... yes\n    Using system DoubleConversion ........ no\n  CLONE_PIDFD support in forkfd .......... yes\n  GLib ................................... yes\n  ICU .................................... yes\n  Using system libb2 ..................... no\n  Built-in copy of the MIME database ..... yes\n  Application permissions ................ yes\n  Defaulting legacy IPC to POSIX ......... no\n  Tracing backend ........................ \u003cnone\u003e\n  OpenSSL based cryptographic hash ....... no\n  Logging backends:\n    journald ............................. no\n    syslog ............................... no\n    slog2 ................................ no\n  PCRE2 .................................. yes\n    Using system PCRE2 ................... yes\nQt Sql:\n  SQL item models ........................ yes\nQt Network:\n  getifaddrs() ........................... yes\n  IPv6 ifname ............................ yes\n  libproxy ............................... no\n  Linux AF_NETLINK ....................... yes\n  DTLS ................................... yes\n  OCSP-stapling .......................... yes\n  SCTP ................................... no\n  Use system proxies ..................... yes\n  GSSAPI ................................. no\n  Brotli Decompression Support ........... yes\n  qIsEffectiveTLD() ...................... yes\n    Built-in publicsuffix database ....... yes\n    System publicsuffix database ......... yes\nCore tools:\n  Android deployment tool ................ no\n  macOS deployment tool .................. no\n  Windows deployment tool ................ no\n  qmake .................................. yes\nQt Gui:\n  Accessibility .......................... yes\n  FreeType ............................... yes\n    Using system FreeType ................ yes\n  HarfBuzz ............................... yes\n    Using system HarfBuzz ................ no\n  Fontconfig ............................. yes\n  Image formats:\n    GIF .................................. yes\n    ICO .................................. yes\n    JPEG ................................. yes\n      Using system libjpeg ............... yes\n    PNG .................................. yes\n      Using system libpng ................ yes\n  Text formats:\n    HtmlParser ........................... yes\n    CssParser ............................ yes\n    OdfWriter ............................ yes\n    MarkdownReader ....................... yes\n      Using system libmd4c ............... no\n    MarkdownWriter ....................... yes\n  EGL .................................... yes\n  OpenVG ................................. no\n  OpenGL:\n    Desktop OpenGL ....................... no\n    OpenGL ES 2.0 ........................ yes\n    OpenGL ES 3.0 ........................ yes\n    OpenGL ES 3.1 ........................ yes\n    OpenGL ES 3.2 ........................ yes\n  Vulkan ................................. no\n  Session Management ..................... yes\nFeatures used by QPA backends:\n  evdev .................................. yes\n  libinput ............................... yes\n  HiRes wheel support in libinput ........ yes\n  INTEGRITY HID .......................... no\n  mtdev .................................. yes\n  tslib .................................. yes\n  xkbcommon .............................. yes\n  X11 specific:\n    xlib ................................. yes\n    XCB Xlib ............................. yes\n    EGL on X11 ........................... yes\n    xkbcommon-x11 ........................ yes\n    xcb-sm ............................... no\nQPA backends:\n  DirectFB ............................... no\n  EGLFS .................................. yes\n  EGLFS details:\n    EGLFS OpenWFD ........................ no\n    EGLFS i.Mx6 .......................... no\n    EGLFS i.Mx6 Wayland .................. no\n    EGLFS RCAR ........................... no\n    EGLFS EGLDevice ...................... yes\n    EGLFS GBM ............................ yes\n    EGLFS VSP2 ........................... no\n    EGLFS Mali ........................... no\n    EGLFS Raspberry Pi ................... no\n    EGLFS X11 ............................ yes\n  LinuxFB ................................ yes\n  VNC .................................... yes\n  VK_KHR_display ......................... no\n  QNX:\n    lgmon ................................ no\n    IMF .................................. no\n  XCB:\n    Using system-provided xcb-xinput ..... no\n    GL integrations:\n      GLX Plugin ......................... no\n        XCB GLX .......................... no\n      EGL-X11 Plugin ..................... yes\n  Windows:\n    Direct 2D ............................ no\n    Direct 2D 1.1 ........................ no\n    DirectWrite .......................... no\n    DirectWrite 3 ........................ no\nQt Widgets:\n  GTK+ ................................... no\n  Styles ................................. Fusion Windows\nQt Testlib:\n  Tester for item models ................. yes\n  Batch tests ............................ no\nQt PrintSupport:\n  CUPS ................................... yes\nQt Sql Drivers:\n  DB2 (IBM) .............................. no\n  InterBase .............................. yes\n  MySql .................................. no\n  OCI (Oracle) ........................... no\n  ODBC ................................... no\n  PostgreSQL ............................. yes\n  SQLite ................................. yes\n    Using system provided SQLite ......... no\n  Mimer .................................. no\n \n\nNote: Due to CMAKE_STAGING_PREFIX usage and an unfixed CMake bug,\n      to ensure correct build time rpaths, directory-level install\n      rules like ninja src/gui/install will not work.\n      Check QTBUG-102592 for further details.\n\n-- \n\nQt is now configured for building. Just run 'cmake --build . --parallel'\n\nOnce everything is built, you must run 'cmake --install .'\nQt will be installed into '/usr/local/qt6'\n```\n\n```bash\nfor opencv\n-- General configuration for OpenCV 4.9.0 =====================================\n--   Version control:               4.9.0\n-- \n--   Extra modules:\n--     Location (extra):            /build/opencv_contrib/modules\n--     Version control (extra):     4.9.0\n-- \n--   Platform:\n--     Timestamp:                   2025-03-25T19:51:40Z\n--     Host:                        Linux 6.11.0-19-generic x86_64\n--     Target:                      Linux aarch64\n--     CMake:                       4.0.20250325-g080c1a4\n--     CMake generator:             Unix Makefiles\n--     CMake build tool:            /usr/bin/gmake\n--     Configuration:               Release\n-- \n--   CPU/HW features:\n--     Baseline:                    NEON\n--       required:                  NEON\n--       disabled:                  VFPV3\n-- \n--   C/C++:\n--     Built as dynamic libs?:      YES\n--     C++ standard:                11\n--     C++ Compiler:                /usr/bin/aarch64-linux-gnu-g++-12  (ver 12.2.0)\n--     C++ flags (Release):         -march=armv8-a -mtune=cortex-a72 -O2 --sysroot=/build/sysroot   -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections   -fvisibility=hidden -fvisibility-inlines-hidden -march=armv8-a -mtune=cortex-a53 -O2 --sysroot=/build/sysroot  -DNDEBUG\n--     C++ flags (Debug):           -march=armv8-a -mtune=cortex-a72 -O2 --sysroot=/build/sysroot   -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections   -fvisibility=hidden -fvisibility-inlines-hidden -g  -DDEBUG -D_DEBUG\n--     C Compiler:                  /usr/bin/aarch64-linux-gnu-gcc-12\n--     C flags (Release):           -march=armv8-a -mtune=cortex-a72 -O2 --sysroot=/build/sysroot   -fsigned-char -W -Wall -Wreturn-type -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections   -fvisibility=hidden -march=armv8-a -mtune=cortex-a53 -O2 --sysroot=/build/sysroot  -DNDEBUG\n--     C flags (Debug):             -march=armv8-a -mtune=cortex-a72 -O2 --sysroot=/build/sysroot   -fsigned-char -W -Wall -Wreturn-type -Waddress -Wsequence-point -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections   -fvisibility=hidden -g  -DDEBUG -D_DEBUG\n--     Linker flags (Release):      --sysroot=/build/sysroot     -L/build/sysroot/usr/lib     -Wl,-rpath-link,/build/sysroot/lib:/build/sysroot/usr/lib     -L/build/sysroot/usr/lib/aarch64-linux-gnu -L/build/sysroot/usr/lib/aarch64-linux-gnu     -Wl,-rpath-link,/build/sysroot/usr/lib/aarch64-linux-gnu:/build/sysroot/usr/lib/aarch64-linux-gnu     -lm -lGLEW -lGLU -lGL -lEGL -lX11 -lGLX -lXext -lXrandr  -Wl,--gc-sections -Wl,--as-needed -Wl,--no-undefined  \n--     Linker flags (Debug):        --sysroot=/build/sysroot     -L/build/sysroot/usr/lib     -Wl,-rpath-link,/build/sysroot/lib:/build/sysroot/usr/lib     -L/build/sysroot/usr/lib/aarch64-linux-gnu -L/build/sysroot/usr/lib/aarch64-linux-gnu     -Wl,-rpath-link,/build/sysroot/usr/lib/aarch64-linux-gnu:/build/sysroot/usr/lib/aarch64-linux-gnu     -lm -lGLEW -lGLU -lGL -lEGL -lX11 -lGLX -lXext -lXrandr  -Wl,--gc-sections -Wl,--as-needed -Wl,--no-undefined  \n--     ccache:                      NO\n--     Precompiled headers:         NO\n--     Extra dependencies:          dl m pthread rt\n--     3rdparty dependencies:\n-- \n--   OpenCV modules:\n--     To be built:                 aruco bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dnn_superres dpm face features2d flann freetype fuzzy gapi hfs highgui img_hash imgcodecs imgproc intensity_transform line_descriptor mcc ml objdetect optflow phase_unwrapping photo plot quality rapid reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking video videoio videostab wechat_qrcode xfeatures2d ximgproc xobjdetect xphoto\n--     Disabled:                    world\n--     Disabled by dependency:      -\n--     Unavailable:                 alphamat cannops cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv hdf java julia matlab ovis python2 python3 sfm ts viz\n--     Applications:                apps\n--     Documentation:               NO\n--     Non-free algorithms:         YES\n-- \n--   GUI:                           NONE\n--     OpenGL support:              NO\n-- \n--   Media I/O: \n--     ZLib:                        /build/sysroot/usr/lib/aarch64-linux-gnu/libz.so (ver 1.2.13)\n--     JPEG:                        /build/sysroot/usr/lib/aarch64-linux-gnu/libjpeg.so (ver 62)\n--     WEBP:                        /build/sysroot/usr/lib/aarch64-linux-gnu/libwebp.so (ver encoder: 0x020f)\n--     PNG:                         /build/sysroot/usr/lib/aarch64-linux-gnu/libpng.so (ver 1.6.39)\n--     TIFF:                        /build/sysroot/usr/lib/aarch64-linux-gnu/libtiff.so (ver 42 / 4.5.0)\n--     JPEG 2000:                   build (ver 2.5.0)\n--     HDR:                         YES\n--     SUNRASTER:                   YES\n--     PXM:                         YES\n--     PFM:                         YES\n-- \n--   Video I/O:\n--     DC1394:                      YES (2.2.6)\n--     FFMPEG:                      YES\n--       avcodec:                   YES (59.37.100)\n--       avformat:                  YES (59.27.100)\n--       avutil:                    YES (57.28.100)\n--       swscale:                   YES (6.7.100)\n--       avresample:                NO\n--     GStreamer:                   YES (1.22.0)\n--     v4l/v4l2:                    YES (linux/videodev2.h)\n-- \n--   Parallel framework:            pthreads\n-- \n--   Trace:                         YES (with Intel ITT)\n-- \n--   Other third-party libraries:\n--     Lapack:                      NO\n--     Custom HAL:                  YES (carotene (ver 0.0.1, Auto detected))\n--     Protobuf:                    build (3.19.1)\n--     Flatbuffers:                 builtin/3rdparty (23.5.9)\n-- \n--   OpenCL:                        YES (no extra features)\n--     Include path:                /build/opencv/3rdparty/include/opencl/1.2\n--     Link libraries:              Dynamic load\n-- \n--   Python (for build):            /usr/bin/python3\n-- \n--   Install to:                    /build/opencvBuild\n-- -----------------------------------------------------------------\n\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphysicsx%2Fqtonraspberrypi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphysicsx%2Fqtonraspberrypi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphysicsx%2Fqtonraspberrypi/lists"}