Compile Qt on embedded Board



  • I want to cross compile Qt on MarsBoard A20 and I try to make qmake.conf but I was not successful!
    occur blew errors by this qmake.conf

    qmake configuration for the A20_OlinuxinO boards

    http://www.olimex.com/

    MAKEFILE_GENERATOR = UNIX
    CONFIG += incremental gdb_dwarf_index
    QMAKE_INCREMENTAL_STYLE = sublib

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

    load(device_config)

    QT_QPA_DEFAULT_PLATFORM = eglfs
    #EGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_a20.cpp

    modifications to g++.conf

    QMAKE_CC = $${CROSS_COMPILE}gcc
    QMAKE_CXX = $${CROSS_COMPILE}g++
    QMAKE_LINK = $${QMAKE_CXX}
    QMAKE_LINK_SHLIB = $${QMAKE_CXX}

    modifications to linux.conf

    QMAKE_AR = $${CROSS_COMPILE}ar cqs
    QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
    QMAKE_NM = $${CROSS_COMPILE}nm -P
    QMAKE_STRIP = $${CROSS_COMPILE}strip

    #modifications to gcc-base.conf
    QMAKE_CFLAGS += $${COMPILER_FLAGS}
    QMAKE_CXXFLAGS += $${COMPILER_FLAGS}

    QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
    QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

    QMAKE_LIBS += -lrt -lpthread -ldl

    Extra stuff (OpenGL, DirectFB, ...)

    QMAKE_INCDIR_EGL = /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/include/EGL
    /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/include
    /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/include/dbus-1.0
    /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/include/dbus-1.0/dbus
    QMAKE_LIBDIR_EGL = /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/lib
    QMAKE_INCDIR_OPENGL_ES2 = /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/include/GLES2
    /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/include
    QMAKE_LIBDIR_OPENGL_ES2 = /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/lib
    #QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL}
    #QMAKE_LIBDIR_OPENVG = $${QMAKE_LIBDIR_EGL}

    QMAKE_LIBS_EGL = -lEGL
    QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $${QMAKE_LIBS_EGL}
    #QMAKE_LIBS_OPENVG = -lOpenVG $${QMAKE_LIBS_EGL}

    Sanity check

    #deviceSanityCheckCompiler()

    load(qt_config)

    ./configure -release -opengl es2 -device Marsboard -device-option CROSS_COMPILE=/home/saman/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad -opensource -confirm-license -prefix /usr/local/qt5pi -v -openssl-linked -xcb

    Running configuration tests...
    Checking for gold linker...

    • cd /home/saman/qt-everywhere-src-5.10.0/mars/config.tests && /home/saman/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -fuse-ld=gold -o conftest-out conftest.cpp
      > collect2: fatal error: cannot find 'ld'

    compilation terminated.
    test config.qtbase.tests.use_gold_linker FAILED
    Checking for machine tuple...

    • /home/saman/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -dumpmachine

    arm-linux-gnueabihf
    test config.qtbase.tests.machineTuple succeeded
    Checking for valid makespec...

    • cd /home/saman/qt-everywhere-src-5.10.0/mars/config.tests/verifyspec && /home/saman/qt-everywhere-src-5.10.0/mars/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" "QMAKE_CFLAGS += --sysroot=/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad" "QMAKE_CXXFLAGS += --sysroot=/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad" "QMAKE_LFLAGS += --sysroot=/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad" -early "CONFIG += cross_compile" /home/saman/qt-everywhere-src-5.10.0/qtbase/config.tests/verifyspec
    • cd /home/saman/qt-everywhere-src-5.10.0/mars/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make clean && MAKEFLAGS= /usr/bin/make

    rm -f verifyspec.o
    rm -f *~ core *.core
    /home/saman/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -march=armv7-a -mtune=cortex-a7 -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=hard --sysroot=/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad -O2 -O3 -std=gnu++11 -w -fPIC -I/home/saman/qt-everywhere-src-5.10.0/qtbase/config.tests/verifyspec -I. -I/home/saman/qt-everywhere-src-5.10.0/qtbase/mkspecs/devices/Marsboard -o verifyspec.o /home/saman/qt-everywhere-src-5.10.0/qtbase/config.tests/verifyspec/verifyspec.cpp
    /home/saman/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --sysroot=/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad -Wl,-O1 -o verifyspec verifyspec.o -L/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/arm-linux-gnueabihf/lib/arm-linux-gnueabihf -L/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/arm-linux-gnueabihf/lib -L/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/lib/arm-linux-gnueabihf -L/home/saman/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib -L/home/saman/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf -lrt -lpthread -ldl -Wl,-rpath-link,/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/lib/arm-linux-gnueabihf -Wl,-rpath-link,/media/saman/c60e8a4e-6cbe-4701-8f08-3c43c7d7a0ad/usr/lib/arm-linux-gnueabihf
    > /home/saman/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib/libstdc++.so: undefined reference to `clock_gettime@GLIBC_2.17'
    collect2: error: ld returned 1 exit status
    Makefile:66: recipe for target 'verifyspec' failed
    make: *** [verifyspec] Error 1
    Note: Also available for Linux: linux-clang linux-icc

    ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.

    please help me



  • Hi

    Did you get any solution for the above issue ?
    I am facing a similar issue as above and any solutions would really help.

    Running configuration tests...
    Checking for gold linker...

    • cd /home/viu1cob/samba/workspace/source/qt-everywhere-opensource-src-5.9.5/config.tests && /opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/bin/arm-none-linux-gnueabi-g++ -fuse-ld=gold -o conftest-out conftest.cpp

    collect2: fatal error: cannot find 'ld'
    compilation terminated.
    test config.qtbase.tests.use_gold_linker FAILED
    Checking for machine tuple...

    • /opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/bin/arm-none-linux-gnueabi-g++ -dumpmachine

    arm-none-linux-gnueabi
    test config.qtbase.tests.machineTuple succeeded
    Checking for valid makespec...

    • cd /home/viu1cob/samba/workspace/source/qt-everywhere-opensource-src-5.9.5/config.tests/verifyspec && /home/viu1cob/samba/workspace/source/qt-everywhere-opensource-src-5.9.5/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" "QMAKE_CFLAGS += --sysroot=/opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/arm-none-linux-gnueabi/libc" "QMAKE_CXXFLAGS += --sysroot=/opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/arm-none-linux-gnueabi/libc" "QMAKE_LFLAGS += --sysroot=/opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/arm-none-linux-gnueabi/libc" -early "CONFIG += cross_compile" /home/viu1cob/samba/workspace/source/qt-everywhere-opensource-src-5.9.5/qtbase/config.tests/verifyspec
    • cd /home/viu1cob/samba/workspace/source/qt-everywhere-opensource-src-5.9.5/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make clean && MAKEFLAGS= /usr/bin/make

    rm -f verifyspec.o
    rm -f *~ core *.core
    /opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/bin/arm-none-linux-gnueabi-g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=hard --sysroot=/opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/arm-none-linux-gnueabi/libc --sysroot=/opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/arm-none-linux-gnueabi/libc -O2 -std=gnu++11 -w -fPIC -I/home/viu1cob/samba/workspace/source/qt-everywhere-opensource-src-5.9.5/qtbase/config.tests/verifyspec -I. -I/home/viu1cob/samba/workspace/source/qt-everywhere-opensource-src-5.9.5/qtbase/mkspecs/devices/linux-imx6-g++ -o verifyspec.o /home/viu1cob/samba/workspace/source/qt-everywhere-opensource-src-5.9.5/qtbase/config.tests/verifyspec/verifyspec.cpp
    /opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/bin/arm-none-linux-gnueabi-g++ -mfloat-abi=hard --sysroot=/opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/arm-none-linux-gnueabi/libc --sysroot=/opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/arm-none-linux-gnueabi/libc -Wl,-O1 -o verifyspec verifyspec.o
    /opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/bin/../lib/gcc/arm-none-linux-gnueabi/5.2.0/../../../../arm-none-linux-gnueabi/bin/ld: error: verifyspec.o uses VFP register arguments, verifyspec does not
    /opt/tooling/codesourcery/MGC-2015.12-138-arm-gcc-5.2.0/Sourcery_CodeBench_for_ARM_Embedded/bin/../lib/gcc/arm-none-linux-gnueabi/5.2.0/../../../../arm-none-linux-gnueabi/bin/ld: failed to merge target specific data of file verifyspec.o
    collect2: error: ld returned 1 exit status



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