Build failing for Qt6 (Cross Compiling for STM32 armv7ve)
-
Hey! I am trying to cross compile QT6 for STM32 processor on Linux Ubuntu and I am getting past the CONFIGURE command which is :
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_FEATURE_eglfs_egldevice=OFF -DQT_FEATURE_eglfs_gbm=OFF -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DQT_HOST_PATH=/home/pi/qt-host/6.0.0/gcc_64/ -DCMAKE_STAGING_PREFIX=/home/pi/qt6-rpi -DCMAKE_INSTALL_PREFIX=/usr/local/qt6 -DCMAKE_PREFIX_PATH=/home/pi/rpi-sdk/sysroot/usr/lib/ -DCMAKE_TOOLCHAIN_FILE=/home/pi/qt-cross/toolchain.cmake /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/with the following configure summary:
Building for: linux-g++ (arm, CPU features: neon)
Compiler: gcc 7.5.0
Build options:
Mode ................................... release
Optimize release build for size ........ no
Fully optimize release builds (-O3) .... no
Building shared libraries .............. yes
Using C standard ....................... C11
Using C++ standard ..................... C++17
Using ccache ........................... no
enable_new_dtags ....................... no
Relocatable ............................ yes
Using precompiled headers .............. yes
Using LTCG ............................. no
Target compiler supports:
NEON ................................. yes
Sanitizers:
Addresses ............................ no
Threads .............................. no
Memory ............................... no
Fuzzer (instrumentation only) ........ no
Undefined ............................ no
Build parts ............................ libs tools
Qt modules and options:
Qt Concurrent .......................... yes
Qt D-Bus ............................... yes
Qt D-Bus directly linked to libdbus .... yes
Qt Gui ................................. yes
Qt Network ............................. yes
Qt Sql ................................. yes
Qt Testlib ............................. yes
Qt Widgets ............................. yes
Qt Xml ................................. yes
Support enabled for:
Using pkg-config ....................... yes
udev ................................... no
Using system zlib ...................... yes
Zstandard support ...................... no
Qt Core:
DoubleConversion ....................... yes
Using system DoubleConversion ........ no
GLib ................................... yes
ICU .................................... yes
Using system libb2 ..................... no
Built-in copy of the MIME database ..... yes
Tracing backend ........................ <none>
Logging backends:
journald ............................. no
syslog ............................... no
slog2 ................................ no
PCRE2 .................................. yes
Using system PCRE2 ................... yes
CLONE_PIDFD support in forkfd .......... yes
Qt Sql:
SQL item models ........................ yes
Qt Network:
getifaddrs() ........................... yes
IPv6 ifname ............................ yes
libproxy ............................... no
Linux AF_NETLINK ....................... yes
OpenSSL ................................ no
Qt directly linked to OpenSSL ........ no
OpenSSL 1.1 ............................ no
DTLS ................................... no
OCSP-stapling .......................... no
SCTP ................................... no
Use system proxies ..................... yes
GSSAPI ................................. no
Brotli Decompression Support ........... no
Qt Gui:
Accessibility .......................... yes
FreeType ............................... yes
Using system FreeType ................ yes
HarfBuzz ............................... yes
Using system HarfBuzz ................ no
Fontconfig ............................. yes
Image formats:
GIF .................................. yes
ICO .................................. yes
JPEG ................................. yes
Using system libjpeg ............... yes
PNG .................................. yes
Using system libpng ................ yes
Text formats:
HtmlParser ........................... yes
CssParser ............................ yes
OdfWriter ............................ yes
MarkdownReader ....................... yes
Using system libmd4c ............... no
MarkdownWriter ....................... yes
EGL .................................... no
OpenVG ................................. no
OpenGL:
Desktop OpenGL ....................... yes
OpenGL ES 2.0 ........................ no
OpenGL ES 3.0 ........................ no
OpenGL ES 3.1 ........................ no
OpenGL ES 3.2 ........................ no
Vulkan ................................. yes
Session Management ..................... yes
Features used by QPA backends:
evdev .................................. yes
libinput ............................... no
INTEGRITY HID .......................... no
mtdev .................................. no
tslib .................................. no
xkbcommon .............................. yes
X11 specific:
XLib ................................. yes
XCB Xlib ............................. yes
EGL on X11 ........................... no
xkbcommon-x11 ........................ no
QPA backends:
DirectFB ............................... no
EGLFS .................................. no
EGLFS details:
EGLFS OpenWFD ........................ no
EGLFS i.Mx6 .......................... no
EGLFS i.Mx6 Wayland .................. no
EGLFS RCAR ........................... no
eglfs_egldevice ...................... no
eglfs_gbm ............................ no
EGLFS VSP2 ........................... no
EGLFS Mali ........................... no
EGLFS Raspberry Pi ................... no
EGLFS X11 ............................ no
LinuxFB ................................ yes
VNC .................................... yes
QNX:
lgmon ................................ no
IMF .................................. no
XCB:
Using system-provided xcb-xinput ..... no
Native painting (experimental) ....... no
GL integrations:
GLX Plugin ......................... no
XCB GLX .......................... no
EGL-X11 Plugin ..................... no
Windows:
Direct 2D ............................ no
Direct 2D 1.1 ........................ no
DirectWrite .......................... no
DirectWrite 3 ........................ no
Qt Widgets:
GTK+ ................................... no
Styles ................................. Fusion Windows
Qt Testlib:
Tester for item models ................. yes
Qt PrintSupport:
CUPS ................................... no
Qt Sql Drivers:
DB2 (IBM) .............................. no
InterBase .............................. no
MySql .................................. no
OCI (Oracle) ........................... no
ODBC ................................... yes
PostgreSQL ............................. yes
SQLite ................................. yes
Using system provided SQLite ......... noHowever, the "cmake --build . --parallel" command is failing with the following error:
[490/1453] Automatic MOC for target Network
AutoMoc: /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/access/qnetworkaccessdebugpipebackend_p.h:0:1: note: No relevant classes found. No output generated.
[594/1453] Linking CXX shared library lib/libQt6Network.so.6.0.0
FAILED: lib/libQt6Network.so.6.0.0 src/network/Network.version /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/Network.version
cd /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network && /usr/bin/perl /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/mkspecs/features/data/unix/findclasslist.pl < /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/Network.version.in > /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/Network.version && cd /home/pi/qt-cross/qtbase-everywhere-src-6.0.0 && /home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --sysroot=/home/pi/rpi-sdk/sysroot -fPIC -fPIC -Wl,-rpath-link,/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -DNDEBUG -O2 -Wl,--version-script,/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/Network.version -Wl,--no-undefined -shared -Wl,-soname,libQt6Network.so.6 -o lib/libQt6Network.so.6.0.0 src/network/CMakeFiles/Network.dir/Network_autogen/mocs_compilation.cpp.o src/network/CMakeFiles/Network.dir/access/qabstractnetworkcache.cpp.o src/network/CMakeFiles/Network.dir/access/qhsts.cpp.o src/network/CMakeFiles/Network.dir/access/qhstspolicy.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkaccessauthenticationmanager.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkaccessbackend.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkaccesscache.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkaccesscachebackend.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkaccessdebugpipebackend.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkaccessfilebackend.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkaccessmanager.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkcookie.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkcookiejar.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkfile.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkreply.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkreplydataimpl.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkreplyfileimpl.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkreplyimpl.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkrequest.cpp.o src/network/CMakeFiles/Network.dir/kernel/qauthenticator.cpp.o src/network/CMakeFiles/Network.dir/kernel/qhostaddress.cpp.o src/network/CMakeFiles/Network.dir/kernel/qhostinfo.cpp.o src/network/CMakeFiles/Network.dir/kernel/qnetworkdatagram.cpp.o src/network/CMakeFiles/Network.dir/kernel/qnetworkinterface.cpp.o src/network/CMakeFiles/Network.dir/kernel/qnetworkproxy.cpp.o src/network/CMakeFiles/Network.dir/socket/qabstractsocket.cpp.o src/network/CMakeFiles/Network.dir/socket/qabstractsocketengine.cpp.o src/network/CMakeFiles/Network.dir/socket/qnativesocketengine.cpp.o src/network/CMakeFiles/Network.dir/socket/qtcpserver.cpp.o src/network/CMakeFiles/Network.dir/socket/qtcpsocket.cpp.o src/network/CMakeFiles/Network.dir/socket/qudpsocket.cpp.o src/network/CMakeFiles/Network.dir/ssl/qasn1element.cpp.o src/network/CMakeFiles/Network.dir/ssl/qpassworddigestor.cpp.o src/network/CMakeFiles/Network.dir/ssl/qssl.cpp.o src/network/CMakeFiles/Network.dir/ssl/qsslcertificate.cpp.o src/network/CMakeFiles/Network.dir/ssl/qsslcertificateextension.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkdiskcache.cpp.o src/network/CMakeFiles/Network.dir/access/qhstsstore.cpp.o src/network/CMakeFiles/Network.dir/access/http2/bitstreams.cpp.o src/network/CMakeFiles/Network.dir/access/http2/hpack.cpp.o src/network/CMakeFiles/Network.dir/access/http2/hpacktable.cpp.o src/network/CMakeFiles/Network.dir/access/http2/http2frames.cpp.o src/network/CMakeFiles/Network.dir/access/http2/http2protocol.cpp.o src/network/CMakeFiles/Network.dir/access/http2/http2streams.cpp.o src/network/CMakeFiles/Network.dir/access/http2/huffman.cpp.o src/network/CMakeFiles/Network.dir/access/qabstractprotocolhandler.cpp.o src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o src/network/CMakeFiles/Network.dir/access/qhttp2configuration.cpp.o src/network/CMakeFiles/Network.dir/access/qhttp2protocolhandler.cpp.o src/network/CMakeFiles/Network.dir/access/qhttpmultipart.cpp.o src/network/CMakeFiles/Network.dir/access/qhttpnetworkconnection.cpp.o src/network/CMakeFiles/Network.dir/access/qhttpnetworkconnectionchannel.cpp.o src/network/CMakeFiles/Network.dir/access/qhttpnetworkheader.cpp.o src/network/CMakeFiles/Network.dir/access/qhttpnetworkreply.cpp.o src/network/CMakeFiles/Network.dir/access/qhttpnetworkrequest.cpp.o src/network/CMakeFiles/Network.dir/access/qhttpprotocolhandler.cpp.o src/network/CMakeFiles/Network.dir/access/qhttpthreaddelegate.cpp.o src/network/CMakeFiles/Network.dir/access/qnetworkreplyhttpimpl.cpp.o src/network/CMakeFiles/Network.dir/socket/qhttpsocketengine.cpp.o src/network/CMakeFiles/Network.dir/kernel/qtldurl.cpp.o src/network/CMakeFiles/Network.dir/kernel/qdnslookup.cpp.o src/network/CMakeFiles/Network.dir/kernel/qhostinfo_unix.cpp.o src/network/CMakeFiles/Network.dir/socket/qnativesocketengine_unix.cpp.o src/network/CMakeFiles/Network.dir/kernel/qnetworkinterface_linux.cpp.o src/network/CMakeFiles/Network.dir/kernel/qnetconmonitor_stub.cpp.o src/network/CMakeFiles/Network.dir/kernel/qnetworkproxy_generic.cpp.o src/network/CMakeFiles/Network.dir/socket/qsocks5socketengine.cpp.o src/network/CMakeFiles/Network.dir/socket/qlocalserver.cpp.o src/network/CMakeFiles/Network.dir/socket/qlocalsocket.cpp.o src/network/CMakeFiles/Network.dir/socket/qlocalserver_unix.cpp.o src/network/CMakeFiles/Network.dir/socket/qlocalsocket_unix.cpp.o src/network/CMakeFiles/Network.dir/ssl/qsslcertificate_qt.cpp.o src/network/CMakeFiles/Network.dir/kernel/qdnslookup_unix.cpp.o -Wl,-rpath,/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/lib: /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libz.so -ldl lib/libQt6Core.so.6.0.0 -pthread -lbrotlidec && :
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lbrotlidec
collect2: error: ld returned 1 exit status
[597/1453] Building CXX object src/xml/CMakeFiles/Xml.dir/dom/qdom.cpp.o
ninja: build stopped: subcommand failed.I have taken the checkout of QT6 base package and the toolkit being used is gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf. Any leads will be super helpful!
Edit: The toolchain.cmake file goes like below:
cmake_minimum_required(VERSION 3.21)
include_guard(GLOBAL)set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)set(TARGET_SYSROOT /home/pi/rpi-sdk/sysroot)
set(CROSS_COMPILER /home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf)set(CMAKE_SYSROOT ${TARGET_SYSROOT})
set(CMAKE_C_COMPILER ${CROSS_COMPILER}-gcc)
set(CMAKE_CXX_COMPILER ${CROSS_COMPILER}-g++)set(CMAKE_LIBRARY_ARCHITECTURE arm-linux-gnueabihf)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fPIC -Wl,-rpath-link,${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} -L${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wl,-rpath-link,${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} -L${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wl,-rpath-link,${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} -L${CMAKE_SYSROOT}/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
set(QT_COMPILER_FLAGS "-march=armv7ve -mfpu=neon -mfloat-abi=hard")
set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe")
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed")set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)set(CMAKE_THREAD_LIBS_INIT "-lpthread")
set(CMAKE_HAVE_THREADS_LIBRARY 1)
set(CMAKE_USE_WIN32_THREADS_INIT 0)
set(CMAKE_USE_PTHREADS_INIT 1)
set(THREADS_PREFER_PTHREAD_FLAG ON)Thanks!
-
@Athem said in Build failing for Qt6 (Cross Compiling for STM32 armv7ve):
Brotli Decompression Support ........... no
[...]
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lbrotlidecThis is weird, because configure reports brotli as not found, so -lbrotlidec shouldn't be added.
Can you try with a completely clean build (in particular, get rid of the
CMakeCache.txt
file?) -
@Athem said in Build failing for Qt6 (Cross Compiling for STM32 armv7ve):
Brotli Decompression Support ........... no
[...]
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lbrotlidecThis is weird, because configure reports brotli as not found, so -lbrotlidec shouldn't be added.
Can you try with a completely clean build (in particular, get rid of the
CMakeCache.txt
file?)@kkoehne I retook the clone of the qtbase 6.0.0 and reconfigured, then built and now it gets stuck with similar error:
[598/1478] Building CXX object src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o
FAILED: src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --sysroot=/home/pi/rpi-sdk/sysroot -DNetwork_EXPORTS -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_NETWORK_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_FOREACH -DQT_NO_USING_NAMESPACE -DQT_USE_QSTRINGBUILDER -DQT_USE_SYSTEM_PROXIES -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/Network_autogen/include -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtNetwork -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/kernel -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtNetwork/6.0.0 -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtNetwork/6.0.0/QtNetwork -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtCore -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/mkspecs/linux-g++ -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/corelib -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtCore/6.0.0 -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtCore/6.0.0/QtCore -fPIC -Wl,-rpath-link,/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -DNDEBUG -O2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -fno-exceptions -pthread -std=c++1z -Winvalid-pch -include /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/CMakeFiles/Network.dir/cmake_pch.hxx -MD -MT src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o -MF src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o.d -o src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o -c /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/access/qdecompresshelper.cpp
/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/access/qdecompresshelper.cpp:48:14: fatal error: brotli/decode.h: No such file or directoryinclude <brotli/decode.h>
^~~~~~~~~~~~~~~~~
compilation terminated.
[601/1478] Building CXX object src/network/CMakeFiles/Network.dir/access/qabstractprotocolhandler.cpp.o
ninja: build stopped: subcommand failed. -
@kkoehne I retook the clone of the qtbase 6.0.0 and reconfigured, then built and now it gets stuck with similar error:
[598/1478] Building CXX object src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o
FAILED: src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --sysroot=/home/pi/rpi-sdk/sysroot -DNetwork_EXPORTS -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_NETWORK_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_FOREACH -DQT_NO_USING_NAMESPACE -DQT_USE_QSTRINGBUILDER -DQT_USE_SYSTEM_PROXIES -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/Network_autogen/include -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtNetwork -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/kernel -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtNetwork/6.0.0 -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtNetwork/6.0.0/QtNetwork -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtCore -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/mkspecs/linux-g++ -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/corelib -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtCore/6.0.0 -I/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/include/QtCore/6.0.0/QtCore -fPIC -Wl,-rpath-link,/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -DNDEBUG -O2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -fno-exceptions -pthread -std=c++1z -Winvalid-pch -include /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/CMakeFiles/Network.dir/cmake_pch.hxx -MD -MT src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o -MF src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o.d -o src/network/CMakeFiles/Network.dir/access/qdecompresshelper.cpp.o -c /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/access/qdecompresshelper.cpp
/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/access/qdecompresshelper.cpp:48:14: fatal error: brotli/decode.h: No such file or directoryinclude <brotli/decode.h>
^~~~~~~~~~~~~~~~~
compilation terminated.
[601/1478] Building CXX object src/network/CMakeFiles/Network.dir/access/qabstractprotocolhandler.cpp.o
ninja: build stopped: subcommand failed.@Athem said in Build failing for Qt6 (Cross Compiling for STM32 armv7ve):
fatal error: brotli/decode.h: No such file or directory
This is now compiler error.
Did you install brotli dev package which contains the header files? -
@Athem said in Build failing for Qt6 (Cross Compiling for STM32 armv7ve):
fatal error: brotli/decode.h: No such file or directory
This is now compiler error.
Did you install brotli dev package which contains the header files?@jsulm said in Build failing for Qt6 (Cross Compiling for STM32 armv7ve):
brotli dev package
yes. I have it installed. I tried reinstalling it and it confirmed that it already had it:
sudo apt-get install libbrotli-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libbrotli-dev is already the newest version (1.0.9-2build6).
libbrotli-dev set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded. -
@jsulm said in Build failing for Qt6 (Cross Compiling for STM32 armv7ve):
brotli dev package
yes. I have it installed. I tried reinstalling it and it confirmed that it already had it:
sudo apt-get install libbrotli-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libbrotli-dev is already the newest version (1.0.9-2build6).
libbrotli-dev set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded. -
@Athem Can you search for decode.h from brotly on your system? And post the path to it. Maybe your OS packes brotli headers differently.
@jsulm I reconfigured after deleting the cache by adding -DQT_FEATURE_brotli=OFF argument in the configure command, so the output of configure confirmed the brotli being off. Now when I gave "cmake --build . --parallel 4" command, it got stuck at another place in network: I am starting to think network modules are a pain to compile (or maybe I am making a mistake somewhere).
Edit: the configure command goes as following:
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_FEATURE_eglfs_egldevice=ON -DQT_FEATURE_eglfs_gbm=ON -DQT_FEATURE_brotli=OFF -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DQT_HOST_PATH=/home/pi/qt-host/6.0.0/gcc_64/ -DCMAKE_STAGING_PREFIX=/home/pi/qt6-rpi -DCMAKE_INSTALL_PREFIX=/usr/local/qt6 -DCMAKE_PREFIX_PATH=/home/pi/rpi-sdk/sysroot/usr/lib/ -DCMAKE_TOOLCHAIN_FILE=/home/pi/qt-cross/toolchain.cmake /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/Build Result:
523/1478] Automatic MOC for target Network
AutoMoc: /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/access/qnetworkaccessdebugpipebackend_p.h:0:1: note: No relevant classes found. No output generated.
[634/1478] Linking CXX executable bin/uic
FAILED: bin/uic
: && /home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --sysroot=/home/pi/rpi-sdk/sysroot -fPIC -Wl,-rpath-link,/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -DNDEBUG -O2 -fPIC -Wl,-rpath-link,/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf src/tools/uic/CMakeFiles/uic_native.dir/uic_native_autogen/mocs_compilation.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/cpp/cppwritedeclaration.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/cpp/cppwriteincludes.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/cpp/cppwriteinitialization.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/customwidgetsinfo.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/databaseinfo.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/driver.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/main.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/python/pythonwritedeclaration.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/python/pythonwriteimports.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/shared/language.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/treewalker.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/ui4.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/uic.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/validator.cpp.o -o bin/uic -Wl,-rpath,/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/lib: lib/libQt6Core.so.6.0.0 -pthread && :
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libz.so.1, needed by lib/libQt6Core.so.6.0.0, not found (try using -rpath or -rpath-link)
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libdl.so.2, needed by lib/libQt6Core.so.6.0.0, not found (try using -rpath or -rpath-link)
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libpcre.so.3, needed by /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0, not found (try using -rpath or -rpath-link)
lib/libQt6Core.so.6.0.0: undefined reference todlopen@GLIBC_2.4' lib/libQt6Core.so.6.0.0: undefined reference to
dlsym@GLIBC_2.4'
/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference topcre_exec' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_study'
/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference topcre_dfa_exec' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_fullinfo'
lib/libQt6Core.so.6.0.0: undefined reference toinflateInit2_' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_get_stringnumber'
/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference topcre_compile2' lib/libQt6Core.so.6.0.0: undefined reference to
dlerror@GLIBC_2.4'
lib/libQt6Core.so.6.0.0: undefined reference todlclose@GLIBC_2.4' lib/libQt6Core.so.6.0.0: undefined reference to
dladdr@GLIBC_2.4'
lib/libQt6Core.so.6.0.0: undefined reference toinflate' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_get_stringtable_entries'
lib/libQt6Core.so.6.0.0: undefined reference tocompress2' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_free'
lib/libQt6Core.so.6.0.0: undefined reference touncompress' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_config'
lib/libQt6Core.so.6.0.0: undefined reference to `inflateEnd'
collect2: error: ld returned 1 exit status
[637/1478] Building CXX object src/xml/CMakeFiles/Xml.dir/cmake_pch.hxx.gch
ninja: build stopped: subcommand failed. -
@jsulm I reconfigured after deleting the cache by adding -DQT_FEATURE_brotli=OFF argument in the configure command, so the output of configure confirmed the brotli being off. Now when I gave "cmake --build . --parallel 4" command, it got stuck at another place in network: I am starting to think network modules are a pain to compile (or maybe I am making a mistake somewhere).
Edit: the configure command goes as following:
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DQT_FEATURE_eglfs_egldevice=ON -DQT_FEATURE_eglfs_gbm=ON -DQT_FEATURE_brotli=OFF -DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=ON -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DQT_HOST_PATH=/home/pi/qt-host/6.0.0/gcc_64/ -DCMAKE_STAGING_PREFIX=/home/pi/qt6-rpi -DCMAKE_INSTALL_PREFIX=/usr/local/qt6 -DCMAKE_PREFIX_PATH=/home/pi/rpi-sdk/sysroot/usr/lib/ -DCMAKE_TOOLCHAIN_FILE=/home/pi/qt-cross/toolchain.cmake /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/Build Result:
523/1478] Automatic MOC for target Network
AutoMoc: /home/pi/qt-cross/qtbase-everywhere-src-6.0.0/src/network/access/qnetworkaccessdebugpipebackend_p.h:0:1: note: No relevant classes found. No output generated.
[634/1478] Linking CXX executable bin/uic
FAILED: bin/uic
: && /home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --sysroot=/home/pi/rpi-sdk/sysroot -fPIC -Wl,-rpath-link,/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -DNDEBUG -O2 -fPIC -Wl,-rpath-link,/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf -L/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf src/tools/uic/CMakeFiles/uic_native.dir/uic_native_autogen/mocs_compilation.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/cpp/cppwritedeclaration.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/cpp/cppwriteincludes.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/cpp/cppwriteinitialization.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/customwidgetsinfo.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/databaseinfo.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/driver.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/main.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/python/pythonwritedeclaration.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/python/pythonwriteimports.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/shared/language.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/treewalker.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/ui4.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/uic.cpp.o src/tools/uic/CMakeFiles/uic_native.dir/validator.cpp.o -o bin/uic -Wl,-rpath,/home/pi/qt-cross/qtbase-everywhere-src-6.0.0/lib: lib/libQt6Core.so.6.0.0 -pthread && :
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libz.so.1, needed by lib/libQt6Core.so.6.0.0, not found (try using -rpath or -rpath-link)
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libdl.so.2, needed by lib/libQt6Core.so.6.0.0, not found (try using -rpath or -rpath-link)
/home/pi/rpi-sdk/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libpcre.so.3, needed by /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0, not found (try using -rpath or -rpath-link)
lib/libQt6Core.so.6.0.0: undefined reference todlopen@GLIBC_2.4' lib/libQt6Core.so.6.0.0: undefined reference to
dlsym@GLIBC_2.4'
/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference topcre_exec' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_study'
/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference topcre_dfa_exec' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_fullinfo'
lib/libQt6Core.so.6.0.0: undefined reference toinflateInit2_' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_get_stringnumber'
/home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference topcre_compile2' lib/libQt6Core.so.6.0.0: undefined reference to
dlerror@GLIBC_2.4'
lib/libQt6Core.so.6.0.0: undefined reference todlclose@GLIBC_2.4' lib/libQt6Core.so.6.0.0: undefined reference to
dladdr@GLIBC_2.4'
lib/libQt6Core.so.6.0.0: undefined reference toinflate' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_get_stringtable_entries'
lib/libQt6Core.so.6.0.0: undefined reference tocompress2' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_free'
lib/libQt6Core.so.6.0.0: undefined reference touncompress' /home/pi/rpi-sdk/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so.0: undefined reference to
pcre_config'
lib/libQt6Core.so.6.0.0: undefined reference to `inflateEnd'
collect2: error: ld returned 1 exit status
[637/1478] Building CXX object src/xml/CMakeFiles/Xml.dir/cmake_pch.hxx.gch
ninja: build stopped: subcommand failed.@Athem Since the issue involes moc and uic, I found the following mentioned in the Qt website: "By default, when cross-compiling, only the Qt libraries and tools that are supposed to run on the target device are built. Build-related tools like moc and uic are not built. Building such tools can be enabled by setting QT_FORCE_BUILD_TOOLS to ON."
sourceCan someone tell me how can I pass QT_FORCE_BUILD_TOOLS to ON? I tried adding it to configure command but it ignores it.
-
@Athem Since the issue involes moc and uic, I found the following mentioned in the Qt website: "By default, when cross-compiling, only the Qt libraries and tools that are supposed to run on the target device are built. Build-related tools like moc and uic are not built. Building such tools can be enabled by setting QT_FORCE_BUILD_TOOLS to ON."
sourceCan someone tell me how can I pass QT_FORCE_BUILD_TOOLS to ON? I tried adding it to configure command but it ignores it.
configure ... -- -DQT_FORCE_BUILD_TOOLS=ON
-- is important (see https://doc-snapshots.qt.io/qt6-dev/configure-linux-device.html)!
-
configure ... -- -DQT_FORCE_BUILD_TOOLS=ON
-- is important (see https://doc-snapshots.qt.io/qt6-dev/configure-linux-device.html)!
@jsulm I read here https://codereview.qt-project.org/c/qt%2Fqtdeclarative/+/375768 that if the QTBuildTools are disabled, then qml, qmlscene and qmlpreview have issues when cross compiling. The same issue I am facing when trying to add qtDeclarative on top of the already cross compilled base module:
[1/2] Linking CXX executable bin/qmlpreview FAILED: bin/qmlpreview
[2/2] Linking CXX executable bin/qml FAILED: bin/qmlDo you know about it?
-
@Athem , any particular reason you're using Qt 6.0.0? I recommend at least Qt 6.2 (or, better: Qt 6.3). Quite some cross-compiling issues have been fixed since Qt 6.0.0 ...