Build Qt5.5.1 for Beaglebone black



  • Trying to cross-compile Qt for Beaglebone back with OpenGL support and SGX driver for Quick and I am trying for days.

    I have created SD card (debian image with 4.4 kernel) Installed sgx driver and running
    Installed (on target) libicu-dev libcups2-dev libudev-dev libmtdev-dev libegl1-mesa-dev libopenvg1-mesa-dev
    Host: Ubuntu 16.04. - 64 bit
    Created new device in qtbase/mkspecs/devices/linux-beaglebone-g++ and added in qmake.conf following

    QMAKE_INCDIR_OPENGL   = /path_to_the/rootfs/usr/include/GL
    QMAKE_LIBDIR_OPENGL   = /path_to_the/rootfs/usr/lib
    QMAKE_INCDIR_POWERVR  = /path_to_the/rootfs/usr/include
    QMAKE_INCDIR_OPENGL_ES1 = /path_to_the/rootfs/usr/include/GLES
    QMAKE_LIBDIR_OPENGL_ES1 = /path_to_the/rootfs/usr/lib
    QMAKE_INCDIR_OPENGL_ES1CL = /path_to_the/rootfs/usr/include/GLES
    QMAKE_LIBDIR_OPENGL_ES1CL = /path_to_the/rootfs/usr/lib
    QMAKE_INCDIR_OPENGL_ES2 = /path_to_the/rootfs/usr/include/GLES2
    QMAKE_LIBDIR_OPENGL_ES2 = /path_to_the/rootfs/usr/lib
    QMAKE_INCDIR_EGL      = /path_to_the/rootfs/usr/include/GL
    QMAKE_LIBDIR_EGL      = /path_to_the/rootfs/usr/lib
    

    Created new mkspecs linux-linaro-gnueabihf-g++ and added paths to linaro compiler
    Configuration:

    configure -v 
    -opensource 
    -confirm-license 
    -qt-xcb 
    -no-xinput2 
    -no-tslib 
    -nomake examples 
    -nomake tests 
    -sysroot /pathtothe/rootfs 
    -prefix /path_to_install/bbb-qt-5.5.1 
    -xplatform linux-linaro-gnueabihf-g++ 
    -device linux-beaglebone-g++ 
    -device-option CROSS_COMPILE=/pathtolinaro/bin/arm-linux-gnueabihf- 
    -skip qtwebkit 
    -skip qtwebkit-examples 
    -skip qtwebchannel 
    -skip qtwebengine 
    -skip qtwayland 
    -no-dbus
    

    with output:

    Configure summary
    
    Building on:   linux-g++ (x86_64, CPU features: mmx sse sse2)
    Building for:  devices/linux-beaglebone-g++ (arm, CPU features: neon)
    Platform notes:
    
    qmake vars .......... styles += mac fusion windows DEFINES += QT_NO_LIBUDEV DEFINES += QT_NO_TSLIB DEFINES += QT_NO_LIBINPUT QMAKE_X11_PREFIX = /usr QMAKE_XKB_CONFIG_ROOT = /usr/share/X11/xkb sql-drivers =  sql-plugins =  sqlite qmake switches ......... 
    
    Build options:
      Configuration .......... accessibility audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile cups egl eglfs egl_x11 enable_new_dtags evdev eventfd freetype full-config getaddrinfo getifaddrs harfbuzz iconv icu inotify ipv6ifname large-config largefile linuxfb medium-config minimal-config mremap mtdev neon nis no-pkg-config opengl opengles2 openvg pcre png posix_fallocate precompile_header qpa qpa reduce_exports release rpath shared small-config use_gold_linker xcb xcb-plugin xcb-qt xcb-xlib xkbcommon-qt xlib zlib 
      Build parts ............ libs
      Mode ................... release
      Using sanitizer(s)...... none
      Using C++11 ............ yes
      Using gold linker....... yes
      Using new DTAGS ........ yes
      Using PCH .............. yes
      Target compiler supports:
        Neon ................. yes
    
    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 ................... no
      CUPS ................... yes
      Evdev .................. yes
      FontConfig ............. no
      FreeType ............... yes (bundled copy)
      Glib ................... no
      GStreamer .............. no
      GTK theme .............. no
      HarfBuzz ............... yes (bundled copy)
      Iconv .................. yes
      ICU .................... yes
      Image formats: 
        GIF .................. yes (plugin, using bundled copy)
        JPEG ................. yes (plugin, using bundled copy)
        PNG .................. yes (in QtGui, using bundled copy)
      journald ............... no
      libinput................ no
      mtdev .................. yes (system library)
      Networking: 
        getaddrinfo .......... yes
        getifaddrs ........... yes
        IPv6 ifname .......... yes
        libproxy.............. no
        OpenSSL .............. no
      NIS .................... yes
      OpenGL / OpenVG: 
        EGL .................. yes
        OpenGL ............... yes (OpenGL ES 2.0+)
        OpenVG ............... yes-auto
      PCRE ................... yes (bundled copy)
      pkg-config ............. no 
      PulseAudio ............. no
      QPA backends: 
        DirectFB ............. no
        EGLFS ................ yes
          EGLFS i.MX6....... . no
          EGLFS KMS .......... no
          EGLFS Mali ......... no
          EGLFS Raspberry Pi . no
          EGLFS X11 .......... yes
        LinuxFB .............. yes
        XCB .................. yes (bundled copy)
          EGL on X ........... yes
          GLX ................ no
          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 ............ no
          XKB ................ yes
          XShape ............. yes
          XSync .............. yes
          XVideo ............. yes
      Session management ..... yes
      SQL drivers: 
        DB2 .................. no
        InterBase ............ no
        MySQL ................ no
        OCI .................. no
        ODBC ................. no
        PostgreSQL ........... no
        SQLite 2 ............. no
        SQLite ............... yes (plugin, using bundled copy)
        TDS .................. no
      tslib .................. no
      udev ................... no
      xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb)
      xkbcommon-evdev......... no
      zlib ................... yes (bundled copy)
    

    make -j4

    terminated with this error

    ...moc_qcoreapplication.o .obj/moc_qcoreevent.o .obj/moc_qmimedata.o .obj/moc_qsocketnotifier.o .obj/moc_qtimer.o .obj/moc_qtranslator.o .obj/moc_qobjectcleanuphandler.o .obj/moc_qsharedmemory.o .obj/moc_qeventdispatcher_unix_p.o .obj/moc_qabstractstate.o .obj/moc_qstate.o .obj/moc_qfinalstate.o .obj/moc_qhistorystate.o .obj/moc_qabstracttransition.o .obj/moc_qsignaltransition.o .obj/moc_qeventtransition.o  -lrt -ldl -lpthread -licui18n -licuuc -licudata -L/home/toni/image/2016/QT/dl/qt-everywhere-opensource-src-5.5.1/qtbase/lib -lqtpcre -lpthread -lm -ldl -lrt 
    
    /home/toni/gcc/linaro49/bin/../lib/gcc/arm-linux-gnueabihf/4.9.2/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/toni/image/2016/QT/rootfs/usr/lib/arm-linux-gnueabihf/librt.so: No such file or directory
    /home/toni/gcc/linaro49/bin/../lib/gcc/arm-linux-gnueabihf/4.9.2/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/toni/image/2016/QT/rootfs/usr/lib/arm-linux-gnueabihf/libdl.so: No such file or directory
    /home/toni/gcc/linaro49/bin/../lib/gcc/arm-linux-gnueabihf/4.9.2/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/toni/image/2016/QT/rootfs/usr/lib/arm-linux-gnueabihf/libdl.so: No such file or directory
    /home/toni/gcc/linaro49/bin/../lib/gcc/arm-linux-gnueabihf/4.9.2/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/toni/image/2016/QT/rootfs/usr/lib/arm-linux-gnueabihf/librt.so: No such file or directory
    /home/toni/gcc/linaro49/bin/../lib/gcc/arm-linux-gnueabihf/4.9.2/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/toni/image/2016/QT/rootfs/usr/lib/arm-linux-gnueabihf/libm.so: No such file or directory
    
    .obj/qlibrary_unix.o:qlibrary_unix.cpp:function qdlerror(): error: undefined reference to 'dlerror'
    .obj/qlibrary_unix.o:qlibrary_unix.cpp:function QLibraryPrivate::unload_sys(): error: undefined reference to 'dlclose'
    .obj/qlibrary_unix.o:qlibrary_unix.cpp:function QLibraryPrivate::resolve_sys(char const*): error: undefined reference to 'dlsym'
    .obj/qlibrary_unix.o:qlibrary_unix.cpp:function QLibraryPrivate::load_sys(): error: undefined reference to 'dlopen'
    .obj/qlibrary_unix.o:qlibrary_unix.cpp:function qt_linux_find_symbol_sys(char const*): error: undefined reference to 'dlsym'
    .obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'pow'
    .obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'floorf'
    .obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'pow'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeCosineCurve(double): error: undefined reference to 'cos'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutSine(double): error: undefined reference to 'cos'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeSineCurve(double): error: undefined reference to 'sin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutCurve(double): error: undefined reference to 'sin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutCirc(double): error: undefined reference to 'sqrt'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutCirc(double): error: undefined reference to 'sqrt'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutCirc(double): error: undefined reference to 'sqrt'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInCirc(double): error: undefined reference to 'sqrt'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutInSine(double): error: undefined reference to 'cos'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutInSine(double): error: undefined reference to 'sin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutExpo(double): error: undefined reference to 'pow'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutExpo(double): error: undefined reference to 'pow'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInSine(double): error: undefined reference to 'cos'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInCurve(double): error: undefined reference to 'sin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
    .obj/qline.o:qline.cpp:function QLineF::angle() const: error: undefined reference to 'atan2'
    .obj/qline.o:qline.cpp:function QLineF::setAngle(double): error: undefined reference to 'sincos'
    .obj/qline.o:qline.cpp:function QLineF::fromPolar(double, double): error: undefined reference to 'sincos'
    .obj/qline.o:qline.cpp:function QLineF::angle(QLineF const&) const: error: undefined reference to 'acos'
    .obj/qlocale_tools.o:qlocale_tools.cpp:function qdtoa(double, int, int, int*, int*, char**, char**): error: undefined reference to 'feholdexcept'
    .obj/qlocale_tools.o:qlocale_tools.cpp:function qdtoa(double, int, int, int*, int*, char**, char**): error: undefined reference to 'fesetenv'
    .obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'floor'
    .obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'ceil'
    .obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'floor'
    .obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'ceil'
    .obj/qtimeline.o:qtimeline.cpp:function QTimeLine::frameForTime(int) const: error: undefined reference to 'ceil'
    collect2: error: ld returned 1 exit status
    Makefile:1296: recipe for target '../../lib/libQt5Core.so.5.5.1' failed
    make[3]: *** [../../lib/libQt5Core.so.5.5.1] Error 1
    make[3]: Leaving directory '/home/toni/image/2016/QT/dl/qt-everywhere-opensource-src-5.5.1/qtbase/src/corelib'
    Makefile:166: recipe for target 'sub-corelib-make_first' failed
    make[2]: *** [sub-corelib-make_first] Error 2
    make[2]: Leaving directory '/home/toni/image/2016/QT/dl/qt-everywhere-opensource-src-5.5.1/qtbase/src'
    Makefile:45: recipe for target 'sub-src-make_first' failed
    make[1]: *** [sub-src-make_first] Error 2
    make[1]: Leaving directory '/home/toni/image/2016/QT/dl/qt-everywhere-opensource-src-5.5.1/qtbase'
    Makefile:67: recipe for target 'module-qtbase-make_first' failed
    make: *** [module-qtbase-make_first] Error 2
    

    missing files are in place...
    rootfs/usr/lib/arm-linux-gnueabihf/librt.so

    How to solve this... anyone, please.



  • Hi. I know it isn't exactly solution for your problem, but didn't you consider to use TI SDK for beaglebone? It has Qt 5.6 included.



  • yes indeed everything goes smoothly when compiling with rootfs provided with ti-sdk.
    thank you for replay.
    I will put here instruction howto .
    Best regards


Log in to reply
 

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