Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

RaspberryPi2EGLFS



  • Hello, I just started the guide for cross-compile https://wiki.qt.io/RaspberryPi2EGLFS
    and at step 10 after introducing the command:
    ./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v
    I get this:
    <srcbase> = /home/mihai/Desktop/raspi/qtbase
    <bldbase> = /home/mihai/Desktop/raspi/qtbase
    <outbase> = /home/mihai/Desktop/raspi/qtbase
    Creating qmake...
    make: Nothing to be done for 'first'.
    Command line: -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=/home/mihai/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot /home/mihai/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix /home/mihai/raspi/qt5pi -hostprefix /home/mihai/raspi/qt5 -v
    Project ERROR: Cannot run target compiler '/home/mihai/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++'. Output:

    ===================
    Maybe you forgot to setup the environment?

    Can someoane help me about solving this :D?


  • Lifetime Qt Champion

    @MihaiJunior said in RaspberryPi2EGLFS:

    /home/mihai/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++

    Does this exist and is executable?



  • Yes, it exists but I can't run it when I doubleclick it.


  • Lifetime Qt Champion

    @MihaiJunior You should run it in a terminal and not double click, it's not a GUI application...



  • ./arm-linux-gnueabihf-g++
    arm-linux-gnueabihf-g++: fatal error: no input files
    compilation terminated.

    This is the result after run it in terminal.


  • Lifetime Qt Champion

    @MihaiJunior You should rather try whole path to make sure it is correct: /home/mihai/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++



  • @jsulm said in RaspberryPi2EGLFS:

    /home/mihai/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++

    I am already in the path:
    ~/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin$


  • Lifetime Qt Champion

    @MihaiJunior It's not the same path:

    /home/mihai/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++
    ~/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
    

    You're in Desktop but the in the compiler path there is no Desktop directory.
    So please make sure exact same path as called during configure is valid and executable.



  • Result: No such file or directory
    Is there any method we can share screens and you might help me?


  • Lifetime Qt Champion

    @MihaiJunior said in RaspberryPi2EGLFS:

    Is there any method we can share screens and you might help me?

    No, and I'm not going to do this anyway.
    It looks like you're passing wrong path to configure:

    CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf
    


  • I change it and I have the same result :(

    ./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v
    <srcbase> = /home/mihai/Desktop/raspi/qtbase
    <bldbase> = /home/mihai/Desktop/raspi/qtbase
    <outbase> = /home/mihai/Desktop/raspi/qtbase
    Creating qmake...
    make: Nothing to be done for 'first'.
    Command line: -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot /home/mihai/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix /home/mihai/raspi/qt5pi -hostprefix /home/mihai/raspi/qt5 -v
    Project ERROR: Cannot run target compiler 'home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++'. Output:

    ===================
    Maybe you forgot to setup the environment?


  • Lifetime Qt Champion

    @MihaiJunior said in RaspberryPi2EGLFS:

    CROSS_COMPILE=home/mihai

    you forgot / in front of home...



  • Same result...



  • Still unsolved, I'm open to any method that cand solve this



  • Update !!!:

    I changed the command into:

    ./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=/home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v -no-use-gold-linker

    And now I have this result with the following error:

    <srcbase> = /home/mihai/Desktop/raspi/qtbase
    <bldbase> = /home/mihai/Desktop/raspi/qtbase
    <outbase> = /home/mihai/Desktop/raspi/qtbase
    Creating qmake...
    make: Nothing to be done for 'first'.
    Command line: -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=/home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot /home/mihai/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix /home/mihai/raspi/qt5pi -hostprefix /home/mihai/raspi/qt5 -v -no-use-gold-linker

    This is the Qt Open Source Edition.

    You have already accepted the terms of the Open Source license.

    Running configuration tests...

    • /home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -dumpmachine

    arm-linux-gnueabihf
    Checking for valid makespec...

    • cd /home/mihai/Desktop/raspi/qtbase/config.tests/verifyspec && /home/mihai/Desktop/raspi/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" "QMAKE_CFLAGS += --sysroot=/home/mihai/raspi/sysroot" "QMAKE_CXXFLAGS += --sysroot=/home/mihai/raspi/sysroot" "QMAKE_LFLAGS += --sysroot=/home/mihai/raspi/sysroot" -early "CONFIG += cross_compile" /home/mihai/Desktop/raspi/qtbase/config.tests/verifyspec
    • cd /home/mihai/Desktop/raspi/qtbase/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make clean && MAKEFLAGS= /usr/bin/make

    rm -f verifyspec.o
    rm -f *~ core *.core
    /home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -c -pipe -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux -mfloat-abi=hard --sysroot=/home/mihai/raspi/sysroot -O2 -std=gnu++11 -w -fPIC -I. -I/home/mihai/Desktop/raspi/qtbase/mkspecs/devices/linux-rasp-pi2-g++ -o verifyspec.o verifyspec.cpp
    /home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/home/mihai/raspi/sysroot -Wl,-O1 -Wl,-rpath-link,/home/mihai/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/mihai/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/mihai/raspi/sysroot/lib/arm-linux-gnueabihf -o verifyspec verifyspec.o
    /home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find crt1.o: No such file or directory
    /home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find crti.o: No such file or directory
    /home/mihai/Desktop/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lm
    collect2: error: ld returned 1 exit status
    make: *** [Makefile:69: verifyspec] Error 1
    Note: Also available for Linux: linux-clang linux-icc

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


  • Lifetime Qt Champion

    @MihaiJunior Is the path to sysroot correct and does it contain the sysroot?
    ~/raspi/sysroot



  • I change it and it work and after few minutes of instalation i got this:
    /home/mihai/Desktop/raspi/qtbase/lib/libQt5EglSupport.a(qeglplatformcontext.o): In function QEGLPlatformContext::getProcAddress(char const*)': qeglplatformcontext.cpp:(.text+0xa4): undefined reference todlsym'
    collect2: error: ld returned 1 exit status
    make[5]: *** [Makefile.eglfsdeviceintegration:252: ../../../../lib/libQt5EglFSDeviceIntegration.so.5.12.5] Error 1
    make[5]: Leaving directory '/home/mihai/Desktop/raspi/qtbase/src/plugins/platforms/eglfs'
    make[4]: *** [Makefile:62: sub-eglfsdeviceintegration-pro-install_subtargets-ordered] Error 2
    make[4]: Leaving directory '/home/mihai/Desktop/raspi/qtbase/src/plugins/platforms/eglfs'
    make[3]: *** [Makefile:114: sub-eglfs-install_subtargets] Error 2
    make[3]: Leaving directory '/home/mihai/Desktop/raspi/qtbase/src/plugins/platforms'
    make[2]: *** [Makefile:90: sub-platforms-install_subtargets] Error 2
    make[2]: Leaving directory '/home/mihai/Desktop/raspi/qtbase/src/plugins'
    make[1]: *** [Makefile:844: sub-plugins-install_subtargets] Error 2
    make[1]: Leaving directory '/home/mihai/Desktop/raspi/qtbase/src'
    make: *** [Makefile:63: sub-src-install_subtargets] Error 2





  • On the instructions found here: https://wiki.qt.io/RaspberryPi2EGLFS , I saw this "You probably also want to add -jn option to make command, where n is a number of cores you like to use for the complication." Could this be the reason? Can someoane tell where to add this -jn and what value for n?


  • Lifetime Qt Champion

    @MihaiJunior -jn will for sure not solve your issue. What it does is: compile on n CPU cores to speed up compilation. It is a parameter for make.



  • @jsulm, and what can solve my issue? Sorry for having so many questions but untill this step I was able to fix everything...


  • Lifetime Qt Champion

    @MihaiJunior I don't know dlsym is actually par of C lib and should be there. Maybe still something wrong with your sysroot.


Log in to reply