通过buildroot解决需要移植QT库的问题

https://blog.csdn.net/jkl_wyl/article/details/103437465

一,buildroot下载
buildroot官网
我下载的是最后的

这个建议下载最新版本,版本越新,支持的应用库就越多。
二,安装交叉编译器
编译器的安装网上面有很多资源,可以自行搜索。
我是用的是4.9版本的编译器,需要的可以下载。

三,配置buildroot
在配置buildroot之前,先配置好交叉编译工具。
1.进入buildroot目录
cd buildroot-2017.08/
make menuconfig
会出现下面这个界面

2.target option

配置如图中所示:
3.toolchian

4.Target packages

5. Filesystem images

三,编译文件系统
make
编译完成后,在output目录中有一下目录:

编译完成后,在buildroot-2017.08/output/image中会生成rootfs.tar以及你所设置需要生成的文件系统格式。在buildroot-2017.08/output/target中就是你生成的文件系统。
想要知道是否生成了QT库,进入buildroot-2017.08/output/target/usr/lib目录中,会有QT库,我生成的下图:

到这一步,带QT库的文件系统编译完成了,就缺最后的挂载文件系统。
四,挂载文件系统
我是使用的是通过SD卡挂载文件系统。每个开发板的挂载可能会有不同,我的挂载如下:
方法:通过在ubuntu下的fdisk命令对SD卡进行分区。
例如:
4.1 fdisk /dev/sdb
n 1 默认 +32M
n 2 默认 默认
完成两个分区。
w 退出分区操作
4.2 mkfs.vfat /dev/sdb1 //格式化第一个分区为fat16格式
mkfs.ext4 /dev/sdb2 //格式化第一个分区为ext4格式
注意:在进行分区和格式化操作的时候,不要挂载分区,如果分区自动挂载了,手动卸载,例如:umount /dev/sdb1,否则会出错。
4.3 存入数据
mount /dev/sdb1 /media/usb0 //挂载分区1
mount /dev/sdb12 /media/usb1 //挂载分区2
然后将设备树文件和内核镜像文件复制到第一个分区。
将 文件系统的压缩包解压到第二个分区。
4.4,将TF卡插入开发板,进入u-boot界面
设置启动参数:
setenv bootargs 'console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 rw rootfstype=ext4’
重启开发板,带QT的文件系统挂载完成,可以自己写QT程序进行测试,也可以使用自带的测试代码进行测试。
五,测试
在buildroot-2017.08_QT4.8.6_4.8/output/build/qt-4.8.7/examples/widgets/analogclock目录下有已经编译好的可执行文件analogclock。
直接运行:
./analogclock。
会出新报错,找不到eglfs的plugin,这是因为编译成立的文件系统默认的plugin是eglfs,这时候需要我们手动设置环境变量
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0 //指定我们的显示屏
再次./analogclock,开发板的显示屏上会出现一个图案。到这一步,整个过程就完成了,希望能够帮到有需要的人

(0)

相关推荐