Skip to main content

使用 Qt 6.8 减少 Qt 应用程序的二进制文件大小 - 第 2 部分:咖啡机示例

Comments

您是否希望优化 Qt 应用程序以提高性能和效率?Qt 6.8 中的Qt Configure Options 可帮助您实现。

通过有选择性地启用或禁用 Qt 框架中的功能和模块,开发人员可以以更小的包形式交付应用程序,从而减少 RAM 和 ROM 占用,并实现更快的启动时间。

在本篇博客中,我们将介绍针对 Raspberry Pi 4 目标设备交叉编译 Qt Configure Options 的过程。遵循概述的步骤,您可以根据需求定制应用程序,并亲身体验 Qt Configure Options的优势。

适用于 Raspberry Pi 4 的 Qt Configure Options 和交叉编译

让我们以交叉编译 Raspberry Pi 4 目标设备的 Qt Configure Options 为例。

1.首先,下载 Qt 交叉编译 SDK,它为目标设备提供了必要的工具链。您可以在 Boot2Qt Raspberry Pi 页面上找到更多信息。此外,请确保使用相同的方法下载相应版本的主机 SDK 及其源代码。

2. 下载 qtlite_coffeemachine.txt 文件(包含自定义功能配置),以及 toolchain_rpi4.cmake 文件(概述了构建目标编译和链接器参数)。

3.使用必要的模块和功能配置 Qt。在本示例中,我们使用了允许 咖啡机示例编译和运行的功能集。

cd $HOME/Qt/6.8.0/Src
./configure -qt-host-path $HOME/Qt/6.8.0/gcc_64 -extprefix $HOME/Qt/my_rpi4_sdk -release -optimize-size -static -ltcg -reduce-exports -gc-binaries $(cat $HOME/qtlite_coffeemachine.txt) ---- -DCMAKE_TOOLCHAIN_FILE=$HOME/toolchain_rpi4.cmake

 

4. 最后,构建并安装 SDK 到 $HOME/Qt/my_rpi4_sdk

 


cmake --build .--parallel
cmake --install .

 

 

有关更详细的说明,请参阅 Raspberry Pi 4 wiki 页面 以及其他提供的链接和文档。

构建咖啡机示例

将定制的 SDK 导入Qt Creator 并从欢迎页面打开咖啡机示例。然后,在 CMakeLists.txt 主文件中加入以下 CMake 命令,以进一步优化二进制文件的大小。

set_target_properties(
        coffeemachine
    PROPERTIES
      QT_QMLCACHEGEN_ARGUMENTS "--only-bytecode"
)

 

最后一步涉及删除所有文本符号:

aarch64-linux-gnu-strip -s coffeemachine

 

最终,用户将注意到 RAM 和 ROM 使用量的减少,以及更快的启动时间。

观察结果

为了进行比较,我们使用了 vanilla 6.8.0 Beta4 版本。动态结果是使用未修改的二进制文件获得的,而静态库是使用以下 configure 命令生成的:

./configure -qt-host-path $HOME/Qt/6.8.0/gcc_64 -extprefix $HOME/Qt/6.8.0_static -release -static -skip qtapplicationmanager -qpa eglfs -- -DCMAKE_TOOLCHAIN_FILE=$HOME/toolchain_rpi4.cmake

 

上一章所述,通过修改 Qt 框架和应用程序构建流程实现了优化。此外,所有调试信息都从优化后的应用程序中剥离。

ROM 中的内存占用

 

RAM 中的内存占用

 

应用程序启动时间

 

微调

开发人员可通过取消 QML Effects和 QML Controls Fusion-style 等功能来进一步减少二进制文件大小。移除Effects可使用 linuxfb 后端而不是 eglfs,从而将二进制文件的大小再减少 30%。

结论

Qt 6.8 的配置选项使开发人员能够对其应用程序的性能和效率进行微调,从而精确地满足特定需求。通过切换 Qt 框架中的功能和组件,开发人员可以制作出更精简的应用程序,可将 ROM 占用率降低高达 77%,将 RAM 消耗降低 32%,并显著加快启动速度。

本篇博客介绍了如何利用 Qt Configure Options,它可显著减少二进制文件大小和相关资源消耗。优化图形资产和应用程序代码本身也将改善资源消耗,但在本博客中显示的测量结果,我们并未调整这些内容。在寻求优化应用程序时,配置 Qt 二进制文件是您可以做的事情之一。

借助必要的工具链和配置文件,使用 Raspberry Pi 4 的配置选项交叉编译 Qt 将变得更加容易。要进一步了解 Qt Configure Options 的优势以及如何在您的项目中实施,请阅读本文提供的链接和文档。

 

Comments

Subscribe to our blog

Try Qt 6.11 Now!

Download the latest release here: www.qt.io/download

Qt 6.11 is now available, with new features and improvements for application developers and device creators.

We're Hiring

Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.