rpi3 device missing



  • I'm trying to cross-compile Qt5.6 for Raspberry Pi 3 as described here:

    https://wiki.qt.io/RaspberryPi2EGLFS

    the doc says to configure qtbase as follow:

    ./configure -release -opengl es2 -device linux-rasp-pi2-g++ [...]

    but changing the device to linux-rasp-pi3-g++ leads to this error:

    Error: No device matching 'linux-rasp-pi3-g++'

    What is the right way to to this?


  • Lifetime Qt Champion

    Hi,

    Do you mean the linux-rpi3-g++ mkspecs ?



  • @SGaist Yes, I didn't imagine it because it's different than rpi2!


  • Lifetime Qt Champion

    Well, instinctively I would have follow the same pattern as you did before checking.

    I don't know why the naming for the RPi3 doesn't follow the others.



  • @SGaist ./configure -top-level -release -opengl es2 -device linux-rpi3-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf -sysroot /home/fs/raspi/sysroot -opensource -confirm-license -make libs -prefix usr/local/qt5pi -extprefix /home/fs/raspi/qt5pi -hostprefix /home/fs/raspi/qt5 -v
    Creating qmake...
    make: Nothing to be done for 'first'.
    Command line: -release -opengl es2 -device linux-rpi3-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf -sysroot /home/fs/raspi/sysroot -opensource -confirm-license -make libs -prefix usr/local/qt5pi -extprefix /home/fs/raspi/qt5pi -hostprefix /home/fs/raspi/qt5 -v
    ERROR: No device matching 'linux-rpi3-g++'.

    linux-rpi3-g++ is not working on qt 5.9


  • Lifetime Qt Champion

    Try with linux-rasp-pi3-g++



  • @SGaist said in rpi3 device missing:

    linux-rasp-pi3-g++

    ./configure -top-level -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf -sysroot /home/fs/raspi/sysroot -opensource -confirm-license -make libs -prefix usr/local/qt5pi -extprefix /home/fs/raspi/qt5pi -hostprefix /home/fs/raspi/qt5 -v
    Creating qmake...
    make: Nothing to be done for 'first'.
    Command line: -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf -sysroot /home/fs/raspi/sysroot -opensource -confirm-license -make libs -prefix usr/local/qt5pi -extprefix /home/fs/raspi/qt5pi -hostprefix /home/fs/raspi/qt5 -v

    This is the Qt Open Source Edition.

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

    Running configuration tests...
    Checking for valid makespec...

    • cd /home/user/Downloads/qt-everywhere-opensource-src-5.9.1/config.tests/common/verifyspec && /home/user/Downloads/qt-everywhere-opensource-src-5.9.1/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared console single_arch" "QMAKE_CFLAGS += --sysroot=/home/fs/raspi/sysroot" "QMAKE_CXXFLAGS += --sysroot=/home/fs/raspi/sysroot" "QMAKE_LFLAGS += --sysroot=/home/fs/raspi/sysroot" -early "CONFIG += cross_compile" /home/user/Downloads/qt-everywhere-opensource-src-5.9.1/qtbase/config.tests/common/verifyspec

    Project ERROR: Compiler /usr/bin/arm-linux-gnueabihfg++ not found. Check the value of CROSS_COMPILE -device-option
    Note: Also available for Linux: linux-clang linux-icc

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

    Still not working


  • Lifetime Qt Champion

    Seriously, did you even try to understand the error message ?

    /usr/bin/arm-linux-gnueabihfg++ doesn't exist on your system hence the error message. It's likely /usr/bin/arm-linux-gnueabihf-g++ thus you are missing the final - in your CROSS_COMPILE statement.



  • @SGaist

    I already have it

    user@KELLGGNLPTP0232:~$ arm-linux-gnueabihf-g++
    arm-linux-gnueabihf-g++: fatal error: no input files
    compilation terminated.

    user@KELLGGNLPTP0232:~$ which arm-linux-gnueabihf-g++
    /usr/bin/arm-linux-gnueabihf-g++



  • Here is the catch

    you have to use arm-linux-gnueabihf-'' instead of arm-linux-gnueabihf.

    @SGaist thanks for your help


Log in to reply
 

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