Cross-Compiling Qt 5.12 for Raspberry Pi Fails
-
Hello,
I am trying to cross-compile Qt 5.12 from git, and failing. This works for other Qt versions (tested with 5.9.x, 5.10.x and 5.11.x, up to 5.11.3), but it does not work for Qt 5.12.
So here is what i do, basically:
git clone git://code.qt.io/qt/qt5.git cd qt5 git checkout 5.12.0 perl init-repository
The configure string i am currently using (and working up to Qt 5.11.3) is:
./configure -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=(...)/arm-linux-gnueabihf- -sysroot SYSROOT -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix (...)/qt5pi -hostprefix (...)/qt5 -no-use-gold-linker -no-gbm -skip qtscript -skip qtwebengine -skip qtwayland -skip qtlocation -v
The configure step goes as expected. Then, when i try the make step... The following happens:
cd qtbase/ && ( test -e Makefile || ~/qt5/qtbase/bin/qmake -o Makefile ~/qt5/qtbase/qtbase.pro ) && make -f Makefile Info: creating cache file ~/qt5/qtbase/.qmake.cache make[1]: Entering directory '~/qt5/qtbase' cd src/ && ( test -e Makefile || ~/qt5/qtbase/bin/qmake -o Makefile ~/qt5/qtbase/src/src.pro ) && make -f Makefile make[2]: Entering directory '~/qt5/qtbase/src' cd corelib/ && ( test -e Makefile.qtzlib || ~/qt5/qtbase/bin/qmake -o Makefile.qtzlib ~/qt5/qtbase/src/corelib/qtzlib.pro ) && make -f Makefile.qtzlib Project MESSAGE: ~/qt5/bin/syncqt -module QtZlib -version 5.12.0 -outdir ~/qt5 -builddir ~/qt5/qtbase ~/qt5/qtbase sh: 1: ~/qt5/bin/syncqt: not found Project ERROR: Failed to run: ~/qt5/bin/syncqt -module QtZlib -version 5.12.0 -outdir ~/qt5 -builddir ~/qt5/qtbase ~/qt5/qtbase Makefile:73: recipe for target 'sub-zlib-make_first' failed make[2]: *** [sub-zlib-make_first] Error 3 make[2]: Leaving directory '~/qt5/qtbase/src' Makefile:50: recipe for target 'sub-src-make_first' failed make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory '~/qt5/qtbase' Makefile:86: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2
As far as I can tell, the make command is looking for the folder "qt5/bin/syncqt", but it does not exist. What exists is "qt5/qtbase/bin/syncqt". I don't know if this is an issue or not.
If i try the configure command INSIDE the qtbase folder, only to build qtbase, it also works fine, the configure command goes fine, and the make command goes fine... But i am unable to build all the Qt modules at once due to this...
If i try these steps on Qt 5.11.3, it works, and builds ok, the make command goes to the end fine.
Thanks a lot.
-
@CarlosMesquita said in Cross-Compiling Qt 5.12 for Raspberry Pi Fails:
-sysroot SYSROOT
This doesn't look correct. Where is your sysroot?
-
@jsulm said in Cross-Compiling Qt 5.12 for Raspberry Pi Fails:
@CarlosMesquita said in Cross-Compiling Qt 5.12 for Raspberry Pi Fails:
-sysroot SYSROOT
This doesn't look correct. Where is your sysroot?
Sure it doesn't hehe
I replaced some parts for other strings in order to keep the commands shorter. My sysroot is something like:-sysroot ~/carlos/rpi_cctools_test/sysroot
-
So, i got some updates on this issue.
When using branches 5.12.0 OR 5.12.1, the issue is the one reported above.
But if i use branch(or tag, i dunno) 5.12, and using the very same configure string command, i get the following error message when running the configure:
ERROR: Feature 'opengles2' was enabled, but the pre-condition 'config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)' failed. ERROR: The OpenGL functionality tests failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2], QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.
Any thoughts?
-
Is this last issue related to EGL libraries? I renamed how they are referenced in ./qtbase/mkspecs/devices/linux-rasp-pi3-g++/qmake.conf, maybe this help.
Have a look at the steps I followed to cross compile Qt 5.12, particulary section “6. Configure Qt for cross compilation“ from https://mechatronicsblog.com/cross-compile-and-deploy-qt-5-12-for-raspberry-pi/