您是否希望优化 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 为例。
1.首先,下载 Qt 交叉编译 SDK,它为目标设备提供了必要的工具链。您可以在 Boot2Qt Raspberry Pi 页面上找到更多信息。此外,请确保使用相同的方法下载相应版本的主机 SDK 及其源代码。
2. 下载 qtlite_coffeemachine.txt 文件(包含自定义功能配置),以及 toolchain_rpi4.cmake 文件(概述了构建目标编译和链接器参数)。
3.使用必要的模块和功能配置 Qt。在本示例中,我们使用了允许 咖啡机示例编译和运行的功能集。
cd $HOME/Qt/6.8.0/Src |
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 框架和应用程序构建流程实现了优化。此外,所有调试信息都从优化后的应用程序中剥离。
Qt 6.8 的配置选项使开发人员能够对其应用程序的性能和效率进行微调,从而精确地满足特定需求。通过切换 Qt 框架中的功能和组件,开发人员可以制作出更精简的应用程序,可将 ROM 占用率降低高达 77%,将 RAM 消耗降低 32%,并显著加快启动速度。
本篇博客介绍了如何利用 Qt Configure Options,它可显著减少二进制文件大小和相关资源消耗。优化图形资产和应用程序代码本身也将改善资源消耗,但在本博客中显示的测量结果,我们并未调整这些内容。在寻求优化应用程序时,配置 Qt 二进制文件是您可以做的事情之一。
借助必要的工具链和配置文件,使用 Raspberry Pi 4 的配置选项交叉编译 Qt 将变得更加容易。要进一步了解 Qt Configure Options 的优势以及如何在您的项目中实施,请阅读本文提供的链接和文档。