Solved QT WebEngine 5.9.x - Cross Compile i.MX6
-
Hello gents,
I am trying to compile QT5.9.1 for my i.MX6 target and I am having problems in getting it build. I have no problems in cross compiling QT for my target without the QtWebEngine support. Also a cross build of Qt 5.7.1 works without any compile errors or issues. But starting with Qt 5.8.0 up to 5.9.1 cross building the QtWebEngine doesn’t work anymore. Here are my configuration and the error message I get. Any help appreciated. Thanks in advance.
Build-Configuration:
export PATH=$BIN_DIR/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin:$PATH:;
export PKG_CONFIG_LIBDIR=$ROOTFS_DIR/usr/lib/pkgconfig:$ROOTFS_DIR/usr/share/pkgconfig:$ROOTFS_DIR/usr/lib/arm-linux-gnueabihf/pkgconfig;
export PKG_CONFIG_SYSROOT_DIR=$ROOTFS;$SRC_DIR/qt-everywhere-opensource-src-5.9.1/configure
-confirm-license
-release
-shared
-opensource
-prefix /usr/local/
-bindir /usr/local/qt5/bin
-libdir /usr/local/lib
-headerdir /usr/local/include
-datadir /usr/local/share/qt5
-archdatadir /usr/local/qt5
-plugindir /usr/local/qt5/plugins
-importdir /usr/local/qt5/imports
-translationdir /usr/local/share/qt5/translations
-hostdatadir $TOOLS_DIR/share/qt5
-extprefix $DIST_DIR
-hostprefix $TOOLS_DIR
-xplatform linux-arm-gnueabihf-g++
-platform linux-g++
-sysroot $ROOTFS_DIR
-no-pch
-opengl es2
-skip qtwayland
-skip qtwebkit
-skip qtwebkit-examples
-nomake examples
-nomake tests
-reduce-exports
-make libs;make -j6;
make install';Error Message:
make[4]: Entering directory '/opt/armv7/tmp/qtwebengine/src/core'
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/opt/armv7/tmp/qtwebengine/src/core'
cd api/ && ( test -e Makefile.core_api || /opt/armv7/tmp/qtbase/bin/qmake -o Makefile.core_api /opt/armv7/src/qt-everywhere-opensource-src-5.9.1/qtwebengine/src/core/api/core_api.pro ) && make -f Makefile.core_api install
make[4]: Entering directory '/opt/armv7/tmp/qtwebengine/src/core/api'
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/opt/armv7/tmp/qtwebengine/src/core/api'
( test -e Makefile.core_module || /opt/armv7/tmp/qtbase/bin/qmake -o Makefile.core_module /opt/armv7/src/qt-everywhere-opensource-src-5.9.1/qtwebengine/src/core/core_module.pro ) && make -f Makefile.core_module install
make[4]: Entering directory '/opt/armv7/tmp/qtwebengine/src/core'
perl /opt/armv7/src/qt-everywhere-opensource-src-5.9.1/qtbase/mkspecs/features/data/unix/findclasslist.pl < QtWebEngineCore.version.in > QtWebEngineCore.version
make[4]: *** No rule to make target '/opt/armv7/tmp/qtwebengine/src/core/Release/QtWebEngineCore.stamp', needed by '../../lib/libQt5WebEngineCore.so.5.9.1'. Stop.
make[4]: Leaving directory '/opt/armv7/tmp/qtwebengine/src/core'
Makefile:130: recipe for target 'sub-core_module-pro-install_subtargets' failed
make[3]: *** [sub-core_module-pro-install_subtargets] Error 2
make[3]: Leaving directory '/opt/armv7/tmp/qtwebengine/src/core'
Makefile:89: recipe for target 'sub-core-install_subtargets' failed
make[2]: *** [sub-core-install_subtargets] Error 2
make[2]: Leaving directory '/opt/armv7/tmp/qtwebengine/src'
Makefile:58: recipe for target 'sub-src-install_subtargets' failed
make[1]: *** [sub-src-install_subtargets] Error 2
make[1]: Leaving directory '/opt/armv7/tmp/qtwebengine'
Makefile:957: recipe for target 'module-qtwebengine-install_subtargets' failed
make: *** [module-qtwebengine-install_subtargets] Error 2 -
After years of not getting an answer to my question, I finally managed to resolve the matter myself. So for all the folks out there facing the same issue, the solution is as simple as dumb: You need to compile everything on a 32-Bit host!
As a matter of fact, the QTWebEngine build system somehow is tailored for 32-Bit compilation. Simply installing the multi-arch packages on a 64-Bit system is not sufficient enough, it really needs to be a 32-Bit machine. In my case, I successfully built QT5.15.2 under Debian Stretch 9.13 32-Bit without any issues. I consider this case closed.