Qt 5.7 and cross compile
-
I try to cross compile in ubuntu. But I get this error:
Failed to process makespec for platform 'devices/linux-rpi3-g++'
Project ERROR: Compiler /home/nikohal/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ not found. Check the value of CROSS_COMPILE -device-option
Could not read qmake configuration file /home/nikohal/qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs/devices/linux-rpi3-g++/qmake.conf.
Error processing project file: /dev/null
nikohal@nikohal-VirtualBox:~/qt-everywhere-opensource-src-5.7.0$
How I can fix this?
Br, Niko H. -
What is the command you are running?
Does the file
/home/nikohal/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++
exist?
@I.C.Wiener Yes it is there. But some reason it not found.
Br, Niko H.
-
What is the command you are running?
Does the file
/home/nikohal/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++
exist?
@I.C.Wiener I also try installing lib32z1 lib32ncurses5 lib32bz2-1.0 packages, but not help.
-
@I.C.Wiener
In path was error, but now I get this error:
checking for C++11...
/home/nikohal/raspi/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ -c -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++1z -mfloat-abi=hard --sysroot=/home/nikohal/raspi/sysroot -O2 -std=gnu++11 -Wall -W -fPIC -I. -I../../../mkspecs/devices/linux-rpi3-g++ -o c++11.o c++11.cpp
/home/nikohal/raspi/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
make: *** [c++11.o] Error 127
C++11 disabled.
ERROR: Qt requires a C++11 compiler and yours does not seem to be that.
Please upgrade.
In path was "tools" what I have wasn't -
@I.C.Wiener Command is configure. I also install packages libc6-i386 lib32z1 lib32stdc++6. And now It give this error:
/home/nikohal/raspi/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ -c -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++1z -mfloat-abi=hard --sysroot=/home/nikohal/raspi/sysroot -O2 -std=gnu++11 -Wall -W -fPIC -I. -I../../../mkspecs/devices/linux-rpi3-g++ -o c++11.o c++11.cpp
arm-linux-gnueabihf-g++: virhe: unrecognized argument in option ”-march=armv8-a+crc”
arm-linux-gnueabihf-g++: huom: valid arguments to ”-march=” are: armv2 armv2a armv3 armv3m armv4 armv4t armv5 armv5e armv5t armv5te armv6 armv6-m armv6j armv6k armv6s-m armv6t2 armv6z armv6zk armv7 armv7-a armv7-m armv7-r armv7e-m armv8-a iwmmxt iwmmxt2 native
arm-linux-gnueabihf-g++: virhe: unrecognized command line option ”-std=c++1z”
make: *** [c++11.o] Error 1
C++11 disabled.
ERROR: Qt requires a C++11 compiler and yours does not seem to be that.
Please upgrade. -
What command did you execute? The whole command line please.
And please try to use// Code markers
for console output and commands.
@I.C.Wiener Command is:
./configure -release -opengl es2 -device linux-rpi3-g++ -device-option CROSS_COMPILE=~/raspi/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 And I run it in folder qtbase.
-
I had some success by installing
g++-arm-linux-gnueabihf
and then replacing
CROSS_COMPILE=~/raspi/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-
by
CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-
In general I was trying to cross-compile Qt5.7 for Raspi 3 for some days, made some progress but in the end, the result was not convincing. I guess the raspi-tools need some updating for raspi 3 and Qt5.7 respectively.
-
I had some success by installing
g++-arm-linux-gnueabihf
and then replacing
CROSS_COMPILE=~/raspi/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-
by
CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-
In general I was trying to cross-compile Qt5.7 for Raspi 3 for some days, made some progress but in the end, the result was not convincing. I guess the raspi-tools need some updating for raspi 3 and Qt5.7 respectively.
@I.C.Wiener Yes I install that from ubuntu repository, but it give that error.
/usr/bin/arm-linux-gnueabihf-g++ -c -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++1z -mfloat-abi=hard --sysroot=/home/nikohal/raspi/sysroot -g -Wall -W -fPIC -I. -I../../mkspecs/devices/linux-rpi3-g++ -o arch.o arch.cpp arm-linux-gnueabihf-g++: error: unrecognized command line option ‘-std=c++1z’ make: *** [arch.o] Error 1 Unable to determine architecture! Could not determine the target architecture! Turn on verbose messaging (-v) to see the final report. Determining architecture... () g++ -c -pipe -g -Wall -W -fPIC -I. -I../../mkspecs/linux-g++ -o arch.o arch.cpp g++ -o arch arch.o Found architecture in binary CFG_HOST_ARCH="x86_64" CFG_HOST_CPUFEATURES=" mmx sse sse2" System architecture: 'unknown' Host architecture: 'x86_64' Precompiled-headers support enabled. /usr/bin/arm-linux-gnueabihf-g++ -c -fvisibility=hidden fvisibility.c Symbol visibility control enabled. /usr/bin/arm-linux-gnueabihf-g++ --sysroot=/home/nikohal/raspi/sysroot -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c bsymbolic_functions.c:2:2: error: #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)." #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)." ^ Symbolic function binding disabled. checking for C++11... /usr/bin/arm-linux-gnueabihf-g++ -c -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++1z -mfloat-abi=hard --sysroot=/home/nikohal/raspi/sysroot -O2 -std=gnu++11 -Wall -W -fPIC -I. -I../../../mkspecs/devices/linux-rpi3-g++ -o c++11.o c++11.cpp arm-linux-gnueabihf-g++: error: unrecognized command line option ‘-std=c++1z’ make: *** [c++11.o] Error 1 C++11 disabled. ERROR: Qt requires a C++11 compiler and yours does not seem to be that. Please upgrade.
I Google that, but nothing similar not found
-
Hmm, sorry. I do not have my cross-compiling environment set up anymore (it was too fiddly so I now compile on the Raspi3 directly) but I remember me playing around with the
qtbase/mkspecs/common/g++-base.conf
file. Like changing the-std=c++1z
line to-std=c++11
, so cheating a little bit. I guess ifarm-linux-gnueabihf-g++
does not knowc++1z
yet, there's not much else you can do. -
Hmm, sorry. I do not have my cross-compiling environment set up anymore (it was too fiddly so I now compile on the Raspi3 directly) but I remember me playing around with the
qtbase/mkspecs/common/g++-base.conf
file. Like changing the-std=c++1z
line to-std=c++11
, so cheating a little bit. I guess ifarm-linux-gnueabihf-g++
does not knowc++1z
yet, there's not much else you can do.@I.C.Wiener I have now this problem in raspberry pi 3. I try to compile in there qt, but it give this error:
Running configuration tests... Failed to process makespec for platform 'devices/linux-rasp-pi-g++' Project ERROR: CROSS_COMPILE needs to be set via -device-option CROSS_COMPILE=<path> Could not read qmake configuration file /home/pi/qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs/devices/linux-rasp-pi-g++/qmake.conf. Error processing project file: /dev/null
My configure is:
./configure -v -xcb -tslib -force-pkg-config -device linux-rasp-pi-g++ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -make libs -prefix /usr/local/qt5 2>&1 | tee config.out
-
Hmm, sorry. I do not have my cross-compiling environment set up anymore (it was too fiddly so I now compile on the Raspi3 directly) but I remember me playing around with the
qtbase/mkspecs/common/g++-base.conf
file. Like changing the-std=c++1z
line to-std=c++11
, so cheating a little bit. I guess ifarm-linux-gnueabihf-g++
does not knowc++1z
yet, there's not much else you can do.@I.C.Wiener I try to change that line, but now I get this error:
Symbolic function binding disabled. checking for C++11... /usr/bin/g++ -c -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++1z -mfloat-abi=hard -O2 -std=gnu++11 -Wall -W -fPIC -I. -I../../../mkspecs/devices/linux-rpi3-g++ -o c++11.o c++11.cpp g++: error: unrecognized command line option â-std=c++1zâ Makefile:417: recipe for target 'c++11.o' failed make: *** [c++11.o] Error 1 C++11 disabled. ERROR: Qt requires a C++11 compiler and yours does not seem to be that. Please upgrade.
How I can fix this?
-
@I.C.Wiener Yes I install that from ubuntu repository, but it give that error.
/usr/bin/arm-linux-gnueabihf-g++ -c -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++1z -mfloat-abi=hard --sysroot=/home/nikohal/raspi/sysroot -g -Wall -W -fPIC -I. -I../../mkspecs/devices/linux-rpi3-g++ -o arch.o arch.cpp arm-linux-gnueabihf-g++: error: unrecognized command line option ‘-std=c++1z’ make: *** [arch.o] Error 1 Unable to determine architecture! Could not determine the target architecture! Turn on verbose messaging (-v) to see the final report. Determining architecture... () g++ -c -pipe -g -Wall -W -fPIC -I. -I../../mkspecs/linux-g++ -o arch.o arch.cpp g++ -o arch arch.o Found architecture in binary CFG_HOST_ARCH="x86_64" CFG_HOST_CPUFEATURES=" mmx sse sse2" System architecture: 'unknown' Host architecture: 'x86_64' Precompiled-headers support enabled. /usr/bin/arm-linux-gnueabihf-g++ -c -fvisibility=hidden fvisibility.c Symbol visibility control enabled. /usr/bin/arm-linux-gnueabihf-g++ --sysroot=/home/nikohal/raspi/sysroot -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c bsymbolic_functions.c:2:2: error: #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)." #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)." ^ Symbolic function binding disabled. checking for C++11... /usr/bin/arm-linux-gnueabihf-g++ -c -march=armv8-a+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -pipe -Os -mthumb -std=c++1z -mfloat-abi=hard --sysroot=/home/nikohal/raspi/sysroot -O2 -std=gnu++11 -Wall -W -fPIC -I. -I../../../mkspecs/devices/linux-rpi3-g++ -o c++11.o c++11.cpp arm-linux-gnueabihf-g++: error: unrecognized command line option ‘-std=c++1z’ make: *** [c++11.o] Error 1 C++11 disabled. ERROR: Qt requires a C++11 compiler and yours does not seem to be that. Please upgrade.
I Google that, but nothing similar not found
-
@Niko-Hallikainen
I too stuckup with the same issue,can you please help on the same.1 day wasted on the same error.it would be great help for me on ur suggestion.Thanks In advance
-
@Pablo-J.-Rogina
I followed the complete procedure as per below link,Just changed the V_5.7.1 to my V_5.7.0
https://lb.raspberrypi.org/forums/viewtopic.php?t=204529
Still I m having the same issue can you please help me out on this,Almost I have spent 8 Houors on sorting this error.It will a kind support to reduce me tension.Thanks In advance
-
@Pablo-J.-Rogina
Initially I was following that guide only,but I failed at beloe step
git clone git://code.qt.io/qt/qtbase.git -b linux-rasp-pi3-g++
Cloning into 'qtbase'...
fatal: Remote branch linux-rasp-pi3-g++ not found in upstream origin -
@Pablo-J.-Rogina
Initially I was following that guide only,but I failed at beloe step
git clone git://code.qt.io/qt/qtbase.git -b linux-rasp-pi3-g++
Cloning into 'qtbase'...
fatal: Remote branch linux-rasp-pi3-g++ not found in upstream origin@shivaVMC said in Qt 5.7 and cross compile:
git clone git://code.qt.io/qt/qtbase.git -b linux-rasp-pi3-g++
You need to specify what Qt branch (i.e. 5.7, ..., 5.10, etc.) you want to clone from Git repository, let's say you want to cross-compile Qt 5.10:
git clone git://code.qt.io/qt/qtbase.git -b 5.10
then you'll have a folder qtbase will all the sources to build Qt 5.10
-
@shivaVMC said in Qt 5.7 and cross compile:
git clone git://code.qt.io/qt/qtbase.git -b linux-rasp-pi3-g++
You need to specify what Qt branch (i.e. 5.7, ..., 5.10, etc.) you want to clone from Git repository, let's say you want to cross-compile Qt 5.10:
git clone git://code.qt.io/qt/qtbase.git -b 5.10
then you'll have a folder qtbase will all the sources to build Qt 5.10
@Pablo-J.-Rogina
Hi Rogina,
Thank You,Thanks alot for quick response.
Your Comments/Suggestions are perfect to fix my issue.
Everything Looks fine now and my problem is solved.Excellent...!!!