Qt5.3.2 cross-compile : how to enable eglfs plugin



  • I have been trying to cross compile Qt 5.3.2 following "this tutorial":http://www.ics.com/blog/building-qt-and-qtwayland-raspberry-pi and without eglfs and egl the build succeeds. But when I try to compile it with eglfs and egl I'm getting the following error:
    @/src/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ -Wl,-rpath-link,/mnt/rpi-rootfs/opt/vc/lib -Wl,-rpath-link,/mnt/rpi-rootfs/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/mnt/rpi-rootfs/lib/arm-linux-gnueabihf --sysroot=/mnt/rpi-rootfs -Wl,--no-undefined -Wl,--no-undefined -Wl,-O1 -Wl,-rpath,/opt/qt5-rpi/lib -shared -o libqeglfs.so .obj/main.o .obj/qeglfsintegration.o .obj/qeglfswindow.o .obj/qeglfsscreen.o .obj/qeglfshooks_stub.o .obj/qeglfscontext.o .obj/qeglfshooks_pi.o .obj/qrc_cursor.o -L/mnt/rpi-rootfs/usr/lib/arm-linux-gnueabihf -L/mnt/rpi-rootfs/opt/vc/lib -lbcm_host -L/home/mohylaf/src/rpi/qt5_2/qtbase/lib -lQt5PlatformSupport -L/mnt/rpi-rootfs/usr/lib/vc -lz -ludev -lmtdev -lQt5Gui -lQt5Core -lGLESv2 -lpthread -lEGL -L/mnt/rpi-rootfs/usr/lib
    .obj/qeglfsintegration.o: In function QEglFSIntegration::~QEglFSIntegration()': qeglfsintegration.cpp:(.text+0x68): undefined reference toQEGLPlatformIntegration::~QEGLPlatformIntegration()'@
    and other errors related to the missing methods from QEGLPlatformIntegration class.

    More detailed info:
    I'm using the Raspbian 'wheezy' distro version from December 2014. In addition to the above mentioned tutorial, I had to install the following packages on Raspbian

    • libgegl-dev
    • libgbm-dev
    • libehl1-mesa-dev
    • libgles2-mesa-dev
    • libraspberrypi-dev

    and I edited the QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_INCDIR_EGL paths in /src/rpi/qt5/qtbase/mkspecs/devices/linux-rasp-pi-g++/qmake.conf

    the configuration then looks like this (showing only the relevant part ... at least I hope)
    @qmake vars .......... styles += mac fusion windows QMAKE_INCDIR_OPENGL_ES2 = QMAKE_LIBDIR_OPENGL_ES2 = "/mnt/rpi-rootfs/usr/lib/arm-linux-gnueabihf" QMAKE_LIBS_OPENGL_ES2 = "-L/mnt/rpi-rootfs/usr/lib/arm-linux-gnueabihf" "-lGLESv2" QMAKE_INCDIR_LIBUDEV = QMAKE_LIBS_LIBUDEV = -ludev DEFINES += QT_NO_LIBUDEV QMAKE_X11_PREFIX = /usr DEFINES += QT_NO_XKB QMAKE_XKB_CONFIG_ROOT = /usr/share/X11/xkb QMAKE_INCDIR_EGL = /mnt/rpi-rootfs/usr/include/libdrm QMAKE_LIBS_EGL = -L/mnt/rpi-rootfs/usr/lib/arm-linux-gnueabihf -lEGL QMAKE_CFLAGS_EGL = QMAKE_CFLAGS_XCB = QMAKE_LIBS_XCB = -L/mnt/rpi-rootfs/usr/lib/arm-linux-gnueabihf -lxcb-sync -lxcb-xfixes -lxcb-render -lxcb-randr -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-icccm -lxcb-shape -lxcb sql-drivers = sql-plugins = sqlite qmake switches

    Build options:
    Configuration .......... accessibility alsa audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile egl eglfs evdev eventfd freetype full-config getaddrinfo getifaddrs iconv inotify ipv6ifname large-config largefile linuxfb medium-config minimal-config mremap mtdev nis no-harfbuzz opengl opengles2 pcre png posix_fallocate qpa qpa reduce_exports release rpath shared small-config system-jpeg system-zlib xcb xcb-glx xcb-plugin xcb-render xcb-sm xcb-xlib xkbcommon-qt xlib xrender
    Build parts ............ libs examples
    Mode ................... release
    Using C++11 ............ yes
    Using PCH .............. no
    Target compiler supports:
    iWMMXt/Neon .......... no/auto

    Qt modules and options:
    Qt D-Bus ............... no
    Qt Concurrent .......... yes
    Qt GUI ................. yes
    Qt Widgets ............. yes
    Large File ............. yes
    QML debugging .......... yes
    Use system proxies ..... no

    Support enabled for:
    Accessibility .......... yes
    ALSA ................... yes
    CUPS ................... no
    Evdev .................. yes
    FontConfig ............. no
    FreeType ............... yes (bundled copy)
    Glib ................... no
    GTK theme .............. no
    HarfBuzz ............... no
    Iconv .................. yes
    ICU .................... no
    Image formats:
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using system library)
    PNG .................. yes (in QtGui, using bundled copy)
    journald ............... no
    mtdev .................. yes (system library)
    Networking:
    getaddrinfo .......... yes
    getifaddrs ........... yes
    IPv6 ifname .......... yes
    OpenSSL .............. no
    NIS .................... yes
    OpenGL / OpenVG:
    EGL .................. yes
    OpenGL ............... yes (OpenGL ES 2.x)
    OpenVG ............... no
    PCRE ................... yes (bundled copy)
    pkg-config ............. yes
    PulseAudio ............. no
    QPA backends:
    DirectFB ............. no
    EGLFS ................ yes
    KMS .................. no
    LinuxFB .............. yes
    XCB .................. yes (system library)
    EGL on X ........... no
    GLX ................ yes
    MIT-SHM ............ yes
    Xcb-Xlib ........... yes
    Xcursor ............ yes (loaded at runtime)
    Xfixes ............. yes (loaded at runtime)
    Xi ................. yes (loaded at runtime)
    Xi2 ................ no
    Xinerama ........... yes (loaded at runtime)
    Xrandr ............. yes (loaded at runtime)
    Xrender ............ yes
    XKB ................ no
    XShape ............. yes
    XSync .............. yes
    XVideo ............. yes
    Session management ..... yes@

    after the compilation error I checked the symbols included in /src/rpi/qt5_2/qtbase/lib/libQt5PlatformSupport.a library (that is where I assume that the QEGLPlatformIntegration class methods definitions will be) and there is no qeglconvenience.o object and therefore no QEGLPlatformIntegration class methods ...
    I also checked the /src/rpi/qt5_2/qtbase/src/platformsupport/Makefile which was generated and there is no prescription to make the qeglconvenience.o object ... but I don't know why.

    Thanks for help.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.