Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. OpenGL error during Qt 6 corss compilation for Raspberry Pi 4
Forum Updated to NodeBB v4.3 + New Features

OpenGL error during Qt 6 corss compilation for Raspberry Pi 4

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
2 Posts 2 Posters 391 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    BikashRDas
    wrote on last edited by
    #1

    I am trying to cross compile Qt 6 for Raspberry Pi 4. Following are the steps I follwed.
    installed crosstool-ng and related packages.
    took the rpi toolchain from https://github.com/ali1234/rpi-toolchain and build the same.
    downloaded the qt 6 source code by following the steps mentioned in https://wiki.qt.io/Building_Qt_6_from_Git.
    Compiled qt 6 successfully for the host system (Ubuntu 20.04 LTS).
    created a toolchain.cmake:
    toolchain.cmake
    set(CMAKE_SYSTEM_NAME Linux)
    set(CMAKE_SYSTEM_PROCESSOR arm)

    set(tools $HOME/rpi-sdk/toolchain-raspbian--x86_64-arm-linux-gnueabihf)

    set(CMAKE_SYSROOT $HOME/rpi-sdk/sysroot)
    set(CMAKE_C_COMPILER ${tools}/bin/arm-linux-gnueabihf-gcc)
    set(CMAKE_CXX_COMPILER ${tools}/bin/arm-linux-gnueabihf-g++)

    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
    using rsync -avz pi@rpi_ip:/lib rsync -avz pi@192.168.0.119:/usr copied the files from target device(rpi 4) to create the sysroot
    Got the qt source code and compiled the same for host system (ubunto 20.04) sucessfully.
    For rpi cross compilation added folder "linux-arm-gnueabihf-g++" under qtbase/mkspecs and made following changes to qmake.conf

    qmake configuration for building with arm-linux-gnueabihf-g++

    MAKEFILE_GENERATOR = UNIX
    CONFIG += incremental
    QMAKE_INCREMENTAL_STYLE = sublib

    include(../common/linux.conf)
    include(../common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)

    modifications to g++.conf

    QMAKE_CC = arm-linux-gnueabihf-gcc
    QMAKE_CXX = arm-linux-gnueabihf-g++
    QMAKE_LINK = arm-linux-gnueabihf-g++
    QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++

    modifications to linux.conf

    QMAKE_AR = arm-linux-gnueabihf-ar cqs
    QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
    QMAKE_NM = arm-linux-gnueabihf-nm -P
    QMAKE_STRIP = arm-linux-gnueabihf-strip

    QMAKE_INCDIR_OPENGL = $HOME/rpi-sdk/sysroot/usr/include
    QMAKE_LIBDIR_OPENGL = $HOME/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf
    QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
    QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
    QMAKE_LIBS_OPENGL = -lGL
    QMAKE_LIBS_OPENGL_ES2 = -lGLESv2

    load(qt_config)
    I can see the opengl libraries under rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf and rpi-sdk/sysroot/lib/arm-linux-gnueabihf. As per my understanding sysroot/lib is a link to sysroot/usr/lib
    Using following command to configure for cross compilation:
    qtbase/configure -release -opengl es2 -nomake examples -nomake tests -qt-host-path $HOME/QT_COMPILATION/qt-host -extprefix $HOME/QT_COMPILATION/qt-rpi -prefix $HOME/QT_COMPILATION/qt-rpi -- -DCMAKE_TOOLCHAIN_FILE=$HOME/rpi-sdk/toolchain.cmake -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON
    I am getting following errors:

    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:72 (message):
    Check the configuration messages for an error that has occurred.
    Call Stack (most recent call first):
    cmake/QtBuildInformation.cmake:10 (qt_configure_print_summary)
    cmake/QtBuildInternals/QtBuildInternalsConfig.cmake:365 (qt_print_feature_summary)
    CMakeLists.txt:132 (qt_build_repo_end)
    Please let me know if anything wrong I am doing here.

    1 Reply Last reply
    1
    • K Offline
      K Offline
      Kumi
      wrote on last edited by
      #2

      I have similar experience cross-compiling QT. I have additional problems with CMake not able to find EGL includes.
      Have you found a solution to this issue?

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved