之前写过一个《QT5+OpenGL es2 + eglfs交叉编译安装(RK3399)》的文章,最近由于项目需要又重新在RK的其它平台上移植了一个qt5.14,移植过程中又get到了一些新的知识,这里做一个记录,也算是对前片文章做一些补充。因为我的目标机系统是ubuntu20.04所以选择的编译主机系统也是ubuntu20.04,以避免一些不必要的错误。
参考之前的文章搭建环境,不过这次我没有直接挂在文件系统而是创建了一个/opt/sysroot/host/的目录,然后cp文件系统中的所有内容到这个目录下,为了避免权限的问题这里先给/opt目录添加777权限在去创建下面的文件和目录。然后挂在/dev/下的目录到这个复制的文件系统中,在利用sudo chroot host进入文件系统中就可以利用apt安装需要的依赖了,下面提供一个脚本来实现这个过程。
$ ./ch-mount.sh -m host #挂载
$ ./ch-mount.sh -u host #卸载,文件系统使用结束后记得已经要执行这个命令。否则当时删除host时会报错,系统也会出现一些莫名的错误,需要重启系统才行。
ch-mount.sh脚本内容。
#!/bin/bash
#
function mnt() {
echo "MOUNTING..."
sudo mount -t proc /proc ${2}proc
sudo mount -t sysfs /sys ${2}sys
sudo mount -o bind /dev ${2}dev
sudo mount -o bind /dev/pts ${2}dev/pts
echo "CHROOT..."
sudo chroot ${2}
echo "Success!"
}
function umnt() {
echo "UNMOUNTING"
sudo umount ${2}proc
sudo umount ${2}sys
sudo umount ${2}dev/pts
sudo umount ${2}dev
}
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
mnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
umnt $1 $2
else
echo ""
echo "Either 1'st, 2'nd or both parameters were missing"
echo ""
echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
echo ""
echo "For example: ch-mount -m /media/sdcard/"
echo ""
echo 1st parameter : ${1}
echo 2nd parameter : ${2}
fi
交叉编译过程参考之前文章,这里不在赘述。下面着重说一下这次编译过程中遇到的问题。
OPENGL的问题:
编译部署后,利用qt下qt3d/examples/qt3d/scene3d例程作为测试程序,运行后3D效果无法显示,查看GPU的利用率也一直是0。
# 查看CPU使用情况
$ cat /sys/devices/platform/*.gpu/utilisation
后来排查发现问题出在libgles2-mesa、libgles2-mesa-dev这两个库上,在qmake配置的
QMAKE_LIBS_EGL += -lEGL -lGLESv2
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL
其中libGLESv2.so、libEGL.so是安装libgles2-mesa、libgles2-mesa-dev获取的。因为RK用的mali的GPU库,该库本身已经包含了libGLESv2.so、libEGL.so,不过安装位置在/usr/lib/aarch64-linux-gnu/mali下,所以访问不到。其次安装libgles2-mesa、libgles2-mesa-dev后的libGLESv2.so、libEGL.so并不适用于当前系统,所以导致前面应用运行起来有问题。所以在/usr/lib/aarch64-linux-gnu创建libGLESv2.so、libEGL.so符号连接,如下:
$ ln -s mali/libEGL.so libEGL.so
$ ln -s mali/libGLESv2.so libGLESv2.so
再一次运行配置脚本后库的问题解决了,但是opengl还是报错,查看config.log提示缺少glUniform1f、glClear两个函数的定义。如果用的是libgles2-mesa、libgles2-mesa-dev那么这两个函数在libGLESv2.so中可以查找到,但是mali库的这两个函数被定义在了libmali.so(连接到了估计CPU型号的mali库)中。可以利用下面命令搜索查看
$ strings libmali.so | grep "glUniform1f"
$ strings libmali.so | grep "glClear"
现在要做的修改一下opengl的连接库就行,修改qmake文件中的配置如下:
# 这样写是我发现好像QT自动添加了-lEGL -lGLESv2。
QMAKE_LIBS_EGL += -lmali
QMAKE_LIBS_OPENGL_ES2 += -lmali
上面的写法是因为我发现QT中好像已经自动添加了-lEGL、-lGLESv2,如果上面的修改不行的话可以尝试下面的方法。
QMAKE_LIBS_EGL += -lEGL -lGLESv2 -lmali
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL -lmali
修改后QT可以正常编译,并且3D的测试应用页也显示正常。scene3d显示的效果就是一个球围着一个圈转。
另外因为文件系统是直接cop有出来放在其它目录下,所以有些库可能利用符号链接到其它地方,但是符号链接用的又是绝对路径,这样就需要把这个符号链接修改成相对路径。还有就是关于qmake中配置opengl的头文件位置,我这个也发生了一些变化,所以也有所修改,头文件可以去/usr/include下查找。
其它选项:
由于功能需要后续有添加一些qt的功能进去,下面列出添加的功能和依赖的库。
#下面是opengl、xcb相关需要安装的库
$ sudo apt-get install libx11-dev libx11-xcb-dev
$ sudo apt-get install libxkbcommon-dev libxkbcommon-x11-dev
$ sudo apt-get install libxext-dev libxfixes-dev
$ sudo apt-get install libfontconfig1-dev #QT中-fontconfig选项的依赖
$ sudo apt-get install sqlite3 libsqlite3-dev #解决qt中配置系统数据库的依赖问题,对应-sqlite选项
$ sudo apt-get install libts-dev #解决tslib依赖 对应-tslib选项。
$ sudo apt-get install libjpeg-dev #-system-jpeg 选项
$ sudo apt-get install libglib2.0-dev #-glib 选项
$ sudo apt-get install sqlite3 libsqlite3-dev #解决sqlite依赖
$ sudo apt-get install rsyslog #-syslog选项
如果有提示:"ERROR: Feature ‘xcb’ was enabled, but the pre-condition ‘features.thread && libs.xcb && tests.xcb_syslibs && features.xkbcommon-x11’ failed."的错误可以尝试安装下面的库进行修复。
libfontconfig1-dev
libfreetype6-dev
libx11-dev
libx11-xcb-dev
libxext-dev
libxfixes-dev
libxi-dev
libxrender-dev
libxcb1-dev
libxcb-glx0-dev
libxcb-keysyms1-dev
libxcb-image0-dev
libxcb-shm0-dev
libxcb-icccm4-dev
libxcb-sync0-dev
libxcb-xfixes0-dev
libxcb-shape0-dev
libxcb-randr0-dev
libxcb-render-util0-dev
libxcb-xinerama0-dev
libxkbcommon-dev
libxkbcommon-x11-dev
另外在译时提示“undefined reference to `__pointer_chk_guard_local’”,折腾了好几天才发现这个错误是因为之前错误的对文件系统某些内容删除导致的,后来换成最初没有修改过的文件系统编译就没有这问题。如果伙伴们在编译过程遇到一些奇奇怪怪的错误不防更换一下文件系统试试。
环境变量:
export QT_QPA_PLATFORM=XCB
export QT_QPA_EGLFS_INTEGRATION=XCB_EGL #没有这个有些应用会报0x03001错误。
export QTDIR=/opt/qt5.14.2
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export QML2_IMPORT_PATH=$QTDIR/qml
#export QT_QPA_PLATFORM=eglfs #直接配置它启动桌面可能有问题,要用到eglfs可以指定-platform参数
配置:
#!/bin/sh
./configure \
-sysroot /opt/sysroot/host \
-extprefix /opt/qt5.14.2 \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-sse2 \
-no-openssl \
-no-cups \
-no-separate-debug-info \
-gui \
-widgets \
-glib \
-opengl es2 \
-egl \
-eglfs \
-qpa eglfs \
-qt-xcb \
-dbus \
-syslog \
-sqlite \
-tslib \
-fontconfig \
-no-harfbuzz \
-no-linuxfb \
-no-directfb \
-recheck-all
配置时输出的log:
+ cd qtbase
+ /home/lincor/QtProj/qt5.14.2-src/qtbase/configure -top-level -sysroot /opt/sysroot/host -extprefix /opt/qt5.14.2 -confirm-license -opensource -release -make libs -xplatform linux-aarch64-gnu-g++ -pch -qt-libjpeg -qt-libpng -qt-zlib -no-sse2 -no-openssl -no-cups -no-separate-debug-info -gui -widgets -glib -opengl es2 -egl -eglfs -qpa eglfs -qt-xcb -dbus -syslog -sqlite -tslib -fontconfig -no-harfbuzz -no-linuxfb -no-directfb -recheck-all
Creating qmake...
.Done.
This is the Qt Open Source Edition.
You have already accepted the terms of the Open Source license.
Running configuration tests...
Checking for machine tuple... yes
Checking for valid makespec... yes
Checking for alloca() in alloca.h... yes
Checking for target architecture... arm64
Checking for host architecture... x86_64
Checking for C++14 support... yes
Checking for C++17 support... yes
Checking for C99 support... yes
Checking for C11 support... yes
Checking for pkg-config... yes
Checking for D-Bus >= 1.2... no
Checking for dlopen()... yes
Checking for new dtags support... yes
Checking for D-Bus >= 1.2 (host)... yes
Checking for udev... no
Checking for POSIX fallocate()... yes
Checking for precompiled header support... yes
Checking for RDRAND instruction... no
Checking for symbol visibility support... yes
Checking for -Bsymbolic-functions support... no
Checking for Signaling NaN for doubles... yes
Checking for STL compatibility... yes
Checking for Zstandard... no
Checking for clock_gettime()... yes
Checking for POSIX monotonic clock... yes
Checking for C++11 <future>... yes
Checking for eventfd... yes
Checking for futimens()... yes
Checking for getauxval()... yes
Checking for getentropy()... yes
Checking for GLib... yes
Checking for GNU libc... yes
Checking for POSIX iconv... yes
Checking for ICU... no
Checking for inotify... yes
Checking for SysV IPC... yes
Checking for linkat()... yes
Checking for ppoll()... yes
Checking for PCRE2... yes
Checking for renameat2()... yes
Checking for slog2... no
Checking for statx() in libc... yes
Checking for 64 bit atomics... yes
Checking for syslog... yes
Checking for DoubleConversion... no
Checking for O_CLOEXEC... yes
Checking for C++11 <random>... yes
Checking for working std::atomic for function pointers... yes
Checking for getifaddrs()... yes
Checking for KRB5 GSSAPI Support... no
Checking for IPv6 ifname... yes
Checking for Linux AF_NETLINK sockets... yes
Checking for xkbcommon >= 0.5.0... yes
Checking for XCB >= 1.9... yes
Checking for atspi... no
Checking for OpenGL ES 2.0... yes
Checking for KMS... no
Checking for EGL... yes
Checking for XLib... yes
Checking for EGL on X11... yes
Checking for EGLDevice... yes
Checking for GBM... no
Checking for Mali EGL... yes
Checking for i.Mx6 EGL... no
Checking for XCB Xlib... yes
Checking for evdev... yes
Checking for FreeType... yes
Checking for Fontconfig... yes
Checking for mtdev... no
Checking for OpenGL ES 3.0... yes
Checking for OpenGL ES 3.1... yes
Checking for OpenGL ES 3.2... yes
Checking for OpenVG... no
Checking for default QPA platform... eglfs
Checking for libmd4c... no
Checking for tslib... yes
Checking for Vulkan... no
Checking for X11 prefix... /usr
Checking for X11 session management... no
Checking for xkbcommon-x11... yes
Checking for GTK+ >= 3.6... no
Checking for DB2 (IBM)... no
Checking for InterBase... no
Checking for MySQL... no
Checking for OCI (Oracle)... no
Checking for ODBC... no
Checking for PostgreSQL... no
Checking for SQLite (version 2)... no
Checking for TDS (Sybase)... no
Checking for SQLite (version 3)... yes
Checking for ntddmodm... no
Checking for Socket CAN... yes
Checking for Socket CAN FD... yes
Checking for 64bit pointers... yes
Checking for Sufficiently recent FPU on ARM... yes
Checking for Direct3D 12... no
Checking for Assimp... no
Checking for SDL2... no
Checking for Assimp... no
Checking for Autodesk FBX... no
Checking for Wayland client library... no
Checking for Wayland EGL library... no
Checking for wayland-server... no
Checking for BlueZ... no
Checking for sensorfw... no
Checking for Gypsy... no
Checking for WinRT Geolocation API... no
Checking for ALSA... no
Checking for Vivante GPU... no
Checking for GStreamer 1.0... no
Checking for GStreamer 0.10... no
Checking for Video for Linux... yes
Checking for OpenAL... no
Checking for PulseAudio >= 0.9.10... no
Checking for libresourceqt5... no
Checking for Flite... no
Checking for Speech Dispatcher... no
Checking for libclang... no
Checking for architecture supported... yes
Checking for bison... no
Checking for python2...
Checking for flex... no
Checking for gperf... no
Checking for host pkg-config... /usr/bin/pkg-config
Checking for jumbo build merge limit... 8
Checking for platform supported...
Checking for build path without whitespace... yes
Checking for x11... yes
Checking for libdrm... no
Checking for submodule initialized... yes
Checking for d-bus... no
Checking for fontconfig... yes
Checking for freetype >= 2.4.2... yes
Checking for glib-2.0 >= 2.32.0... yes
Checking for glibc > 2.16... yes
Checking for jsoncpp... no
Checking for khr... no
Checking for lcms2... no
Checking for libevent... no
Checking for libvpx... no
Checking for libwebp, libwebpmux and libwebpdemux... no
Checking for compatible libxml2 and libxslt... no
Checking for minizip... no
Checking for system ninja... yes
Checking for nss >= 3.26... no
Checking for opus... no
Checking for protobuf... no
Checking for re2... no
Checking for snappy... no
Checking for xcomposite... no
Checking for xcursor... no
Checking for xi... no
Checking for xtst... no
Done running configuration tests.
Configure summary:
Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for: linux-aarch64-gnu-g++ (arm64, CPU features: cx16 neon)
Target compiler: gcc 9.4.0
Configuration: cross_compile compile_examples enable_new_dtags largefile neon precompile_header shared shared rpath release c++11 c++14 c++1z concurrent dbus reduce_exports stl
Build options:
Mode ................................... release
Optimize release build for size ........ no
Building shared libraries .............. yes
Using C standard ....................... C11
Using C++ standard ..................... C++17
Using ccache ........................... no
Using new DTAGS ........................ yes
Relocatable ............................ yes
Using precompiled headers .............. yes
Using LTCG ............................. no
Target compiler supports:
NEON ................................. yes
Build parts ............................ libs
Qt modules and options:
Qt Concurrent .......................... yes
Qt D-Bus ............................... yes
Qt D-Bus directly linked to libdbus .... no
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 ...................... no
Zstandard support ...................... no
Qt Core:
DoubleConversion ....................... yes
Using system DoubleConversion ........ no
GLib ................................... yes
iconv .................................. yes
ICU .................................... no
Built-in copy of the MIME database ..... yes
Tracing backend ........................ <none>
Logging backends:
journald ............................. no
syslog ............................... yes
slog2 ................................ no
PCRE2 .................................. yes
Using system PCRE2 ................... 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
Qt Gui:
Accessibility .......................... yes
FreeType ............................... yes
Using system FreeType ................ yes
HarfBuzz ............................... no
Using system HarfBuzz ................ no
Fontconfig ............................. yes
Image formats:
GIF .................................. yes
ICO .................................. yes
JPEG ................................. yes
Using system libjpeg ............... no
PNG .................................. yes
Using system libpng ................ no
Text formats:
HtmlParser ........................... yes
CssParser ............................ yes
OdfWriter ............................ yes
MarkdownReader ....................... yes
Using system libmd4c ............... no
MarkdownWriter ....................... yes
EGL .................................... yes
OpenVG ................................. no
OpenGL:
Desktop OpenGL ....................... no
OpenGL ES 2.0 ........................ yes
OpenGL ES 3.0 ........................ yes
OpenGL ES 3.1 ........................ yes
OpenGL ES 3.2 ........................ yes
Vulkan ................................. no
Session Management ..................... yes
Features used by QPA backends:
evdev .................................. yes
libinput ............................... no
INTEGRITY HID .......................... no
mtdev .................................. no
tslib .................................. yes
xkbcommon .............................. yes
X11 specific:
XLib ................................. yes
XCB Xlib ............................. yes
EGL on X11 ........................... yes
QPA backends:
DirectFB ............................... no
EGLFS .................................. yes
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 ........................... yes
EGLFS Raspberry Pi ................... no
EGLFS X11 ............................ yes
LinuxFB ................................ no
VNC .................................... yes
XCB:
Using system-provided XCB libraries .. no
XCB XKB .............................. yes
XCB XInput ........................... yes
Native painting (experimental) ....... no
GL integrations:
GLX Plugin ......................... no
EGL-X11 Plugin ..................... yes
Qt Sql:
SQL item models ........................ yes
Qt Widgets:
GTK+ ................................... no
Styles ................................. Fusion Windows
Qt PrintSupport:
CUPS ................................... no
Qt Sql Drivers:
DB2 (IBM) .............................. no
InterBase .............................. no
MySql .................................. no
OCI (Oracle) ........................... no
ODBC ................................... no
PostgreSQL ............................. no
SQLite2 ................................ no
SQLite ................................. yes
Using system provided SQLite ......... yes
TDS (Sybase) ........................... no
Qt Testlib:
Tester for item models ................. yes
Serial Port:
ntddmodm ............................... no
Qt SerialBus:
Socket CAN ............................. yes
Socket CAN FD .......................... yes
SerialPort Support ..................... yes
Further Image Formats:
JasPer ................................. no
MNG .................................... no
TIFF ................................... yes
Using system libtiff ................. no
WEBP ................................... yes
Using system libwebp ................. no
Qt QML:
QML network support .................... yes
QML debugging and profiling support .... yes
QML just-in-time compiler .............. yes
QML sequence object .................... yes
QML XML http request ................... yes
QML Locale ............................. yes
Qt QML Models:
QML list model ......................... yes
QML delegate model ..................... yes
Qt Quick:
Direct3D 12 ............................ no
AnimatedImage item ..................... yes
Canvas item ............................ yes
Support for Qt Quick Designer .......... yes
Flipable item .......................... yes
GridView item .......................... yes
ListView item .......................... yes
TableView item ......................... yes
Path support ........................... yes
PathView item .......................... yes
Positioner items ....................... yes
Repeater item .......................... yes
ShaderEffect item ...................... yes
Sprite item ............................ yes
QtQuick3D:
Assimp ................................. yes
System Assimp .......................... no
Qt Scxml:
ECMAScript data model for QtScxml ...... yes
Qt Gamepad:
SDL2 ................................... no
Qt 3D:
Assimp ................................. yes
System Assimp .......................... no
Output Qt3D Job traces ................. no
Output Qt3D GL traces .................. no
Use SSE2 instructions .................. no
Use AVX2 instructions .................. no
Aspects:
Render aspect ........................ yes
Input aspect ......................... yes
Logic aspect ......................... yes
Animation aspect ..................... yes
Extras aspect ........................ yes
Qt 3D Renderers:
OpenGL Renderer ........................ yes
Qt 3D GeometryLoaders:
Autodesk FBX ........................... no
Qt Wayland Client ........................ no
Qt Wayland Compositor .................... no
Qt Bluetooth:
BlueZ .................................. no
BlueZ Low Energy ....................... no
Linux Crypto API ....................... no
Native Win32 Bluetooth ................. no
WinRT Bluetooth API (desktop & UWP) .... no
WinRT advanced bluetooth low energy API (desktop & UWP) . no
Qt Sensors:
sensorfw ............................... no
Qt Quick Controls 2:
Styles ................................. Default Fusion Imagine Material Universal
Qt Quick Templates 2:
Hover support .......................... yes
Multi-touch support .................... yes
Qt Positioning:
Gypsy GPS Daemon ....................... no
WinRT Geolocation API .................. no
Qt Location:
Qt.labs.location experimental QML plugin . yes
Geoservice plugins:
OpenStreetMap ........................ yes
HERE ................................. yes
Esri ................................. yes
Mapbox ............................... yes
MapboxGL ............................. yes
Itemsoverlay ......................... yes
QtXmlPatterns:
XML schema support ..................... yes
Qt Multimedia:
ALSA ................................... no
GStreamer 1.0 .......................... no
GStreamer 0.10 ......................... no
Video for Linux ........................ yes
OpenAL ................................. no
PulseAudio ............................. no
Resource Policy (libresourceqt5) ....... no
Windows Audio Services ................. no
DirectShow ............................. no
Windows Media Foundation ............... no
Qt TextToSpeech:
Flite .................................. no
Flite with ALSA ........................ no
Speech Dispatcher ...................... no
Qt Tools:
QDoc ................................... no
Qt WebEngine Build Tools:
Use System Ninja ....................... yes
Use System Gn .......................... no
Jumbo Build Merge Limit ................ 8
Developer build ........................ no
QtWebEngine required system libraries:
fontconfig ........................... yes
dbus ................................. no
nss .................................. no
khr .................................. no
glibc ................................ yes
QtWebEngine required system libraries for qpa-xcb:
x11 .................................. yes
libdrm ............................... no
xcomposite ........................... no
xcursor .............................. no
xi ................................... no
xtst ................................. no
Optional system libraries used:
re2 .................................. no
icu .................................. no
libwebp, libwebpmux and libwebpdemux . no
opus ................................. no
ffmpeg ............................... no
libvpx ............................... no
snappy ............................... no
glib ................................. yes
zlib ................................. no
minizip .............................. no
libevent ............................. no
jsoncpp .............................. no
protobuf ............................. no
libxml2 and libxslt .................. no
lcms2 ................................ no
png .................................. no
JPEG ................................. no
harfbuzz ............................. no
freetype ............................. yes
Note: Also available for Linux: linux-clang linux-icc
Note: PKG_CONFIG_LIBDIR automatically set to /opt/sysroot/host/usr/lib/pkgconfig:/opt/sysroot/host/usr/share/pkgconfig:/opt/sysroot/host/usr/lib/aarch64-linux-gnu/pkgconfig
Note: PKG_CONFIG_SYSROOT_DIR automatically set to /opt/sysroot/host
Note: journald, syslog or slog2 integration is enabled.
If your users intend to develop applications against this build,
ensure that the IDEs they use either set QT_FORCE_STDERR_LOGGING to 1
or are able to read the logged output from journald, syslog or slog2.
Note: Disabling X11 Accessibility Bridge: D-Bus or AT-SPI is missing.
Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.
Note: The following modules are not being compiled in this configuration:
webenginecore
webengine
webenginewidgets
WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.
Either ensure that llvm-config is in your PATH environment variable, or set LLVM_INSTALL_DIR to the location of your llvm installation.
On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution.
On macOS, you can use Homebrew's llvm package.
On Windows, you must set LLVM_INSTALL_DIR to the installation path.
WARNING: Tool gperf is required to build QtWebEngine.
WARNING: QtWebEngine will not be built.
WARNING: QtPdf will not be built.
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into '/opt/qt5.14.2'.
Prior to reconfiguration, make sure you remove any leftovers from
the previous build.