qt creator 交叉编译_为树莓派4交叉编译QT5.14.2(带EGLFS支持)

本文详细介绍了如何为树莓派4进行QT5.14.2的交叉编译,特别是针对EGLFS平台的配置。内容涵盖树莓派的前期准备,包括更新固件、安装依赖包、开启GL Driver等,以及在PC上的准备工作,如下载交叉编译工具链、配置Qt Creator和sysroot。此外,还提到了如何配置运行环境并测试编译成果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 前言

​ 我也不知道为什么我毕设要用QT,但是这都是我自己画的饼,哭着也要摊出来。

​ 由于用的是树莓派4,而树莓派4恰好使用了和前几代都不一样的图形驱动(以前是博通的,现在是mesa的),所以网上资料很少,我一开始还陷入了旧教程之中导致各种各样的问题,坑了我好多时间。

​ 然后再谈谈EGLFS,EGLFS是一个Qt5的平台插件,它的作用就是让QT应用直接运行在EGL和OpenGL ES 2.0上(关于EGL和OpenGL ES 2.0的介绍具体可以看这篇文章)。说白了,就是能让你绕过图形桌面,直接从显卡输出Qt图像到屏幕。如果想直观地体验我刚说的“绕过桌面直接输出”,可以看我的这篇文章。

​ 当然也许你也想让Qt程序在图形界面中,以窗口形式运行。这当然也是可以的,后面会具体说。

本文的步骤如下:

  • 在树莓派4上安装依赖包,并进行一些准备
  • 在PC上安装QT Creator,下载源码,下载交叉编译工具工具链
  • 将树莓派4上的库复制到到PC上做一个sysroot,交叉编译时用
  • 配置,编译,安装到树莓派4上
  • 在树莓派4上配置运行环境,运行例程

1. 在树莓派上的前期准备

​ 换源之类的基本操作就不再多啰嗦了(记得src的源的注释要取消掉),只说重要的。

1.1.【在树莓派上】更新固件(重要)

​ 使用sudo rpi-update,直接运行大概率不会成功(因为功夫网)。解决方法可以看我的这篇文章。

具体可以查看/opt/vc/lib目录下的内容,更新前是没有libEGL.solibGLESv2.so的,只有libbrcmEGL.solibbrcmGLESv2.so,brcm的意思是博通,而我们前面说了博通的驱动是以前的树莓派用的......所以老实更新吧。

完事之后重启

sudo reboot

【紧急补充】在换了树莓派官方7寸屏幕以后,发现rpi-update会导致屏幕只能显示而无法触摸。这是因为官网下载的树莓派系统自带rpi-ft5406触摸驱动,但是更新后的内核还没添加这个驱动支持。于是我用:

sudo apt --reinstall install raspberrypi-kernel

把内核版本改了回去,触摸屏又能用了;同时,/opt/vc/lib里面的libEGL.so和libGLESv2.so库还在,所以QT还能继续支持eglfs。

1.2.【在树莓派上】安装以下包:

# Qt base依赖的包
sudo apt-get install libboost1.58-all-dev libudev-dev libinput-dev libts-dev libmtdev-dev libjpeg-dev libfontconfig1-dev libssl-dev libdbus-1-dev libglib2.0-dev libxkbcommon-dev
# mesa gbm驱动
sudo apt-get install libgles2-mesa-dev libgbm-dev
# 蓝牙相关 可以不用安装
sudo apt-get install bluez libbluetooth-dev
# 中文字体
sudo apt-get install ttf-wqy-zenhei
# 用于远程调试的GDB Server
sudo apt-get install gdbserver

1.3.【在树莓派上】建立文件夹并修改权限:

sudo mkdir /usr/local/qt5pi   # 用来安装qt运行库
sudo chown -R pi:pi /usr/local/qt5pi
mkdir /home/pi/qt5  # 用来存放以后自己写的qt程序可执行文件

1.4.【在树莓派上】开启GL Driver,并以命令行模式启动:

sudo raspi-config
  • 选择 Boot Options —— Desktop/CLI —— Console Autologin —— OK
  • 选择Advanced Options —— GL Driver —— GL ( fake KMS ) —— OK

​ 前者让你以命令行方式启动树莓派;后者启用GL Driver。完事之后Finish,重启就行。查看/dev/dri/目录是否存在,就知道GL Driver启用了。

1.5 【在树莓派上】把用户pi添加到渲染组(重要)

sudo gpasswd -a pi render

2. 在PC上的前期准备

​ 我使用的是Ubuntu 18.04,不是虚拟机。

2.1.【在PC上】下载交叉编译器并配置环境变量

先创建一个文件夹

mkdir ~/raspi
mkdir ~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值