Qt 5.10 on Raspberry Pi Configure Fail
I have 5.9.3 successfully install on this Pi but I thought I would try to get 5.10 up and running. So I did the following:
created and moved into a build5.10 directory
issued the following:
PKG_CONFIG_LIBDIR=/usr/lib/arm-linux-gnueabihf/pkgconfig PKG_CONFIG_SYSROOT_DIR=/ ../qt-everywhere-src-5.10.0/configure -v -opengl es2 -eglfs -no-gtk -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=/usr/bin/ -opensource -confirm-license -reduce-exports -force-pkg-config -nomake examples -no-compile-examples -skip qtwayland -skip qtwebengine -release -qt-pcre -ssl -evdev -system-freetype -fontconfig -glib -prefix /opt/Qt5.10
This proceeds and ends with the following error:
ERROR: Feature 'eglfs' was enabled, but the pre-condition '!config.android && !config.darwin && !config.win32 && features.egl' failed.
I tried to upload the config.log but the forum said that I didn't have enough privileges so you can view the log at https://pastebin.com/ixmNVkn7
Any helpful insights would be greatly appreciated.
Thanks and Happy Holidays!
I found that by adding
I was able to successfully configure so it is building now.
I forgot to mention that I'm running the latest Raspbian Stretch and you have to upgrade the firmware/kernel using
I'll report bak once everything is complete
Well I wasn't that lucky. There are 2 compile errors:
In file included from /home/pi/qt-everywhere-src-5.10.0/qtbase/include/QtWidgets/5.10.0/QtWidgets/private/qwidget_p.h:1:0, from /home/pi/qt-everywhere-src-5.10.0/qtbase/include/QtWidgets/5.10.0/QtWidgets/private/../../../../../src/widgets/kernel/qdesktopwidget_p.h:56, from /home/pi/qt-everywhere-src-5.10.0/qtbase/include/QtWidgets/5.10.0/QtWidgets/private/qdesktopwidget_p.h:1, from /home/pi/qt-everywhere-src-5.10.0/qtbase/src/widgets/widgets/qmenubar.cpp:65: /home/pi/qt-everywhere-src-5.10.0/qtbase/include/QtWidgets/5.10.0/QtWidgets/private/../../../../../src/widgets/kernel/qwidget_p.h:303:24: internal compiler error: Segmentation fault class Q_WIDGETS_EXPORT QWidgetPrivate : public QObjectPrivate ^~~~~~~~~~~~~~ Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions. Makefile:71646: recipe for target '.obj/qmenubar.o' failed make: *** [.obj/qmenubar.o] Error 1 make: *** Waiting for unfinished jobs.... make: Leaving directory '/home/pi/build5.10/qtbase/src/widgets' Makefile:660: recipe for target 'sub-widgets-make_first' failed make: *** [sub-widgets-make_first] Error 2 make: Leaving directory '/home/pi/build5.10/qtbase/src' Makefile:48: recipe for target 'sub-src-make_first' failed make: *** [sub-src-make_first] Error 2 make: Leaving directory '/home/pi/build5.10/qtbase' Makefile:81: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2
I thought maybe the previous error could have been caused by an over heated RPi (I used make -j4) so I did a make clean and then added a fan before I tried again just to rule out overheating. Here's my latest result:
ln -s libQt5OpenGL.so.5.10.0 libQt5OpenGL.so ln -s libQt5OpenGL.so.5.10.0 libQt5OpenGL.so.5 ln -s libQt5OpenGL.so.5.10.0 libQt5OpenGL.so.5.10 rm -f ../../lib/libQt5OpenGL.so.5.10.0 mv -f libQt5OpenGL.so.5.10.0 ../../lib/ rm -f ../../lib/libQt5OpenGL.so rm -f ../../lib/libQt5OpenGL.so.5 rm -f ../../lib/libQt5OpenGL.so.5.10 mv -f libQt5OpenGL.so ../../lib/ mv -f libQt5OpenGL.so.5 ../../lib/ mv -f libQt5OpenGL.so.5.10 ../../lib/ make: Leaving directory '/home/pi/build5.10/qtbase/src/opengl' make: Leaving directory '/home/pi/build5.10/qtbase/src' Makefile:48: recipe for target 'sub-src-make_first' failed make: *** [sub-src-make_first] Error 2 make: Leaving directory '/home/pi/build5.10/qtbase' Makefile:81: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2
I've tried a few things without any luck. I've reduced the GPU memory to 64 (gpu_mem=64 in /boot/config.txt) but that didn't seem to make a difference.
I decided to try and compile each module individually. I believe qtbase compiled OK but when I tried qt3d I got this error:
cc1plus: out of memory allocating 16777204 bytes after a total of 57073664 bytes g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions. Makefile:2837: recipe for target '.pch/Qt53DQuick.gch/c++' failed make: *** [.pch/Qt53DQuick.gch/c++] Error 4 Makefile:2544: recipe for target '.pch/Qt53DLogic.gch/c++' failed make: *** [.pch/Qt53DLogic.gch/c++] Error 1 make: Leaving directory '/home/pi/build5.10/qt3d/src/logic' make: Leaving directory '/home/pi/build5.10/qt3d/src/quick3d/quick3d' Makefile:142: recipe for target 'sub-logic-make_first' failed make: *** [sub-logic-make_first] Error 2 make: *** Waiting for unfinished jobs.... Makefile:297: recipe for target 'sub-quick3d-core-make_first' failed make: *** [sub-quick3d-core-make_first] Error 2 /home/pi/build5.10/qtbase/bin/rcc -name materialsystem /home/pi/qt-everywhere-src-5.10.0/qt3d/src/render/materialsystem/materialsystem.qrc -o .rcc/qrc_materialsystem.cpp
I'm not sure if I'm just getting different errors or if someone can find something that needs to be changed.
BTW, This is on a RPi 3 Model 3 V1.2 and running the following:
pi@GI-Pi:~/build5.10/qt3d $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" pi@GI-Pi:~/build5.10/qt3d $ hostnamectl Static hostname: GI-Pi Icon name: computer Machine ID: 0af09f50a31249a69be1c2ec26ae5be4 Boot ID: 3868cfc6e8734a4e92dcccdda7acf752 Operating System: Raspbian GNU/Linux 9 (stretch) Kernel: Linux 4.9.70-v7+ Architecture: arm
You are running out of memory so try building with just one compiler, so make -j1
Sorry for the delay in replying, I didn't get an email notice that a replay had been posted.
I performed a make clean and then a make -j2 I know it took more than 7 hours to complete but for some reason my time stamp didn't print when it was done. I didn't see any errors on the screen so I did a sudo make install but unfortunately that had errors:
source.o .obj/moc_qgeorectangle.o .obj/moc_qgeocircle.o .obj/moc_qgeocoordinate.o .obj/moc_qgeopositioninfosource.o .obj/moc_qgeosatelliteinfosource.o .obj/moc_qnmeapositioninfosource.o .obj/moc_qgeopolygon.o .obj/moc_qgeopath.o .obj/moc_qnmeapositioninfosource_p.o .obj/moc_qdeclarativegeoaddress_p.o .obj/moc_qdeclarativegeolocation_p.o -L/home/pi/build5.10/qtbase/lib -lQt5Core -lpthread -L/home/pi/build5.10/qtlocation/lib -lclip2tri -lpoly2tri -lclipper /usr/bin/ld: cannot find -lclip2tri /usr/bin/ld: cannot find -lpoly2tri /usr/bin/ld: cannot find -lclipper collect2: error: ld returned 1 exit status Makefile:202: recipe for target '../../lib/libQt5Positioning.so.5.10.0' failed make: *** [../../lib/libQt5Positioning.so.5.10.0] Error 1 make: Leaving directory '/home/pi/build5.10/qtlocation/src/positioning' Makefile:138: recipe for target 'sub-positioning-install_subtargets' failed make: *** [sub-positioning-install_subtargets] Error 2 make: Leaving directory '/home/pi/build5.10/qtlocation/src' Makefile:58: recipe for target 'sub-src-install_subtargets' failed make: *** [sub-src-install_subtargets] Error 2 make: Leaving directory '/home/pi/build5.10/qtlocation' Makefile:767: recipe for target 'module-qtlocation-install_subtargets' failed make: *** [module-qtlocation-install_subtargets] Error 2
So perhaps I did have some compile errors and didn't see them? I searched for lclip2tri and it wasn't found anywhere
@GeorgeIoak I think you need to install libclip2tri, libpoly2tri and libclipper
@jsulm Do you know which package names include those? I also found this thread with similar issue but I don't see a resolution in this thread, https://forum.qt.io/topic/75018/native-build-qt-5-7-1-on-raspberry-pi-get-errors-usr-bin-ld-cannot-find-lclip2tri/5
I found there are 3 directories in qtlocation/src/3rdparty
so I navigated into each directory and performed a clean and then a make. When I then went to do a make install in the top level directory I got another error for "mapbox" so I went into that directory and did the same. When I tried the top level sudo make install this time it did not show any errors and I can see this:
/opt/Qt5.10/bin/qmake --version QMake version 3.1 Using Qt version 5.10.0 in /opt/Qt5.10/lib
so now I have a build directory for 5.9.3 and 5.9.10 and 5.9.3 is installed in /opt/Qt5.9 and 5.10 is install in /opt/Qt5.10
but I see the system is defaulting to 5.9.3 for some reason:
which qmake /opt/Qt5.9/bin/qmake
So you definitely cannot use make -j4 on the Raspberry Pi and it appears that the make files need a little cleaning up for a standard compile to work.
What do "you" suggest I do at this point?
but I see the system is defaulting to 5.9.3 for some reason
Did you add /opt/Qt5.9/bin to PATH?
Whoops, you're right, my PATH included the 5.9 directory:
What would be the best way to determine if my 5.10 installation is working properly before I delete the build directories and sources to free up disk space?
What would be the best way to determine if my 5.10 installation is working properly
Build a Qt project using it