Details
-
Bug
-
Resolution: Invalid
-
P2: Important
-
None
-
5.6.0
-
None
-
* Host PC: Ubuntu 15
* Target: RootFS from the Toradex Apalis T30 (Tegra3) board
* Toolchain: Linaro gcc linux gnueabihf v 4.9
Description
Trying to cross-compile the Qt 5.6.x for the target Toradex (for Tegra3) fails with errors like:
1)
../../include/QtCore/../../src/corelib/io/qtextstream.h:46:2: error: #error qtextstream.h must be included before any header file that defines Status
PS: Similar issues:
- https://forum.qt.io/topic/62534/build-errors-in-cross-compile-qt-for-embedded-linux/2
- https://community.freescale.com/thread/379855
The solution is this:
builder@tegra-build-server:~/Projects/qt5/qtbase$ git diff /home/builder/Projects/qt5/qtbase/src/platformsupport/eglconvenience/qeglpbuffer_p.h diff --git a/src/platformsupport/eglconvenience/qeglpbuffer_p.h b/src/platformsupport/eglconvenience/qeglpbuffer_p.h index 81fdab8..aa79a0a 100644 --- a/src/platformsupport/eglconvenience/qeglpbuffer_p.h +++ b/src/platformsupport/eglconvenience/qeglpbuffer_p.h @@ -45,9 +45,9 @@ // We mean it. // -#include <EGL/egl.h> #include <qpa/qplatformoffscreensurface.h> #include <QtPlatformSupport/private/qeglplatformcontext_p.h> +#include <EGL/egl.h> QT_BEGIN_NAMESPACE builder@tegra-build-server:~/Projects/qt5/qtbase$
2)
make[6]: Entering directory '/home/builder/Projects/toradex/qt5-build/qtbase/src/plugins/platforms/eglfs' /home/builder/Projects/gcc-linaro-arm-linux-gnueabihf-4.9-2014.05_linux/bin/arm-linux-gnueabihf-g++ -c -pipe -mtune=cortex-a9 -march=armv7-a -mfloat-abi=hard --sysroot=/home/builder/Projects/toradex/rootfs -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_BUILD_EGLFS_DEVICE_LIB_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DMESA_EGL_NO_X11_HEADERS -DQT_BUILD_EGL_DEVICE_LIB -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLATFORMSUPPORT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs -I. -I/home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs -isystem /home/builder/Projects/toradex/rootfs/usr/include/libdrm -I../../../../include -I../../../../include/QtPlatformSupport -I../../../../include/QtPlatformSupport/5.6.0 -I../../../../include/QtPlatformSupport/5.6.0/QtPlatformSupport -I../../../../include/QtGui/5.6.0 -I../../../../include/QtGui/5.6.0/QtGui -I../../../../include/QtGui -I../../../../include/QtCore/5.6.0 -I../../../../include/QtCore/5.6.0/QtCore -I../../../../include/QtCore -I.moc -isystem /home/builder/Projects/toradex/rootfs/usr/include -I/home/builder/Projects/qt5/qtbase/mkspecs/devices/linux-tegra3-g++ -o .obj/qeglfsintegration.o /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfsintegration.cpp In file included from /home/builder/Projects/toradex/rootfs/usr/include/X11/Xlib.h:44:0, from /home/builder/Projects/toradex/rootfs/usr/include/EGL/eglplatform.h:118, from /home/builder/Projects/toradex/rootfs/usr/include/EGL/egl.h:36, from /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfsintegration.h:41, from /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfsintegration.cpp:47: ../../../../include/QtGui/5.6.0/QtGui/qpa/../../../../../../../../qt5/qtbase/src/gui/kernel/qplatformcursor.h:65:18: error: expected identifier before numeric constant void set(Qt::CursorShape); ^ ../../../../include/QtGui/5.6.0/QtGui/qpa/../../../../../../../../qt5/qtbase/src/gui/kernel/qplatformcursor.h:65:18: error: expected ‘,’ or ‘...’ before numeric constant /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfscursor.h:110:13: error: expected unqualified-id before numeric constant Qt::CursorShape shape; ^ In file included from /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfsintegration.cpp:52:0: /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfscursor.h: In constructor ‘QEglFSCursor::Cursor::Cursor()’: /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfscursor.h:108:32: error: class ‘QEglFSCursor::Cursor’ does not have any field named ‘shape’ Cursor() : texture(0), shape(Qt::BlankCursor), customCursorTexture(0), customCursorPending(false) { } ^ In file included from /home/builder/Projects/toradex/rootfs/usr/include/X11/Xlib.h:44:0, from /home/builder/Projects/toradex/rootfs/usr/include/EGL/eglplatform.h:118, from /home/builder/Projects/toradex/rootfs/usr/include/EGL/egl.h:36, from /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfsintegration.h:41, from /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfsintegration.cpp:47: ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qcssparser_p.h: At global scope: ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qcssparser_p.h:407:12: error: expected identifier before numeric constant enum { None, Px, Ex, Em } unit; ^ ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qcssparser_p.h:407:12: error: expected ‘}’ before numeric constant ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qcssparser_p.h:407:12: error: expected unqualified-id before numeric constant In file included from ../../../../include/QtGui/5.6.0/QtGui/private/qcssparser_p.h:1:0, from ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qtextdocument_p.h:63, from ../../../../include/QtGui/5.6.0/QtGui/private/qtextdocument_p.h:1, from ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qtextengine_p.h:63, from ../../../../include/QtGui/5.6.0/QtGui/private/qtextengine_p.h:1, from ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qfontengine_p.h:53, from ../../../../include/QtGui/5.6.0/QtGui/private/qfontengine_p.h:1, from ../../../../include/QtGui/5.6.0/QtGui/qpa/../../../../../../../../qt5/qtbase/src/gui/text/qplatformfontdatabase.h:54, from ../../../../include/QtGui/5.6.0/QtGui/qpa/qplatformfontdatabase.h:1, from ../../../../include/QtPlatformSupport/5.6.0/QtPlatformSupport/private/../../../../../../../../qt5/qtbase/src/platformsupport/fontdatabases/basic/qbasicfontdatabase_p.h:48, from ../../../../include/QtPlatformSupport/5.6.0/QtPlatformSupport/private/qbasicfontdatabase_p.h:1, from ../../../../include/QtPlatformSupport/5.6.0/QtPlatformSupport/private/../../../../../../../../qt5/qtbase/src/platformsupport/fontdatabases/genericunix/qgenericunixfontdatabase_p.h:54, from ../../../../include/QtPlatformSupport/5.6.0/QtPlatformSupport/private/qgenericunixfontdatabase_p.h:1, from /home/builder/Projects/qt5/qtbase/src/plugins/platforms/eglfs/qeglfsintegration.cpp:58: ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qcssparser_p.h:73:5: error: expected declaration before ‘}’ token } /* namespace QCss */ \ ^ ../../../../include/QtGui/5.6.0/QtGui/private/../../../../../../../../qt5/qtbase/src/gui/text/qcssparser_p.h:409:1: note: in expansion of macro ‘QT_CSS_DECLARE_TYPEINFO’ QT_CSS_DECLARE_TYPEINFO(LengthData, Q_PRIMITIVE_TYPE) ^ Makefile.eglfs_device_lib:1398: recipe for target '.obj/qeglfsintegration.o' failed make[6]: *** [.obj/qeglfsintegration.o] Error 1
Workaround still is unknown.