一、简介
本文介绍基于 buildroot 文件系统的 QT 模块的使用方法:
• 如何在 buildroot 工具里编译 QT 动态库;
• 编译及运行 qt_demo 应用程序;
• 适配过程遇到的问题。
二、QT动态库编译
在项目根路径执行
./build.sh buildroot_menuconfig
1、选择 Target packages 选项进入下一级配置
2、在 Target packages 配置项下选择 Graphic libraries and applications
3、在 Graphic libraries and applications 配置项中选择 Qt5
4、在 Qt5 中配置项下选择以下这些选项
(1)打开如下的配置(Compile and install example),才会编译对应的 demo。
(2)
保存退出,会把一些基本能验证的 QT 动态库编译出来
三、qt_demo‑launcher 配置
根路径执行
./build.sh buildroot_menuconfig
1、选择 Target packages 选项进入下一级配置
2、在 Target packages 配置项下选择 allwinner platform private package select
3、在 allwinner platform private package select 配置项中选择 qt_demo
4、在 qt_demo 配置项中选择 Launcher for qt
编译好的实例在如下位置。
/usr/lib/qt/examples
#注意,里面的demo能否都使用,需要依赖对应的动态库是否正确编译
四、编译报错
1、问题描述
在完成上述的配置后,进行./build.sh编译时,发现以下错误:
Project ERROR: Unknown module(s) in QT: widgets
Project ERROR: Unknown module(s) in QT: widgets
make[1]: *** [package/pkg-generic.mk:293: /home3/xiath/t527_linux_v1_0_2_git/out/t527/demo_linux_car/buildroot/buildroot/build/qt-launcher/.stamp_built] Error 3
make: *** [Makefile:96: _all] Error 2
make: Leaving directory '/home3/xiath/t527_linux_v1_0_2_git/buildroot/buildroot-202205'
ERROR: build buildroot Failed
INFO: build_buildroot_rootfs failed
2、解决办法
首先,根路径执行
./build.sh buildroot_menuconfig
选择 Target packages ----->Graphic libraries and applications----->Qt5----->widgets module
保存编译后,还是出现上述错误
(1)问题1:BR2_PACKAGE_QT5BASE_WIDGETS=y 无法编译
解决办法:包中的配置更改导致需要删除包,重新编译。
out/t527/demo_linux_car/buildroot/buildroot/build
rm qt5base-f31e001a9399e4e620847ea2c3e90749350140ae/ -rf
(2)问题2: 编译成功,但是在执行./build.sh pack打包时,出现下述错误:
解决办法: rootfs 分区扩大到 512M
device/config/chips/t527/configs/demo_linux_car/buildroot/sys_partition.fex
五、测试
编译烧录后,启动开发板,屏幕有以下现象:
运行qt demo,在usr/lib/qt/examples有很多示例。
./usr/lib/qt/examples/widgets/mainwindows/mainwindow/mainwindow