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

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 ~
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Windows下交叉编译Qt 5.14.2树莓派平台,需要进行以下步骤: 1. 安装交叉编译工具链 在Windows上安装树莓派交叉编译工具链,可以使用Raspberry Pi官方提供的工具链,也可以使用其他第三方提供的工具链。 2. 下载Qt源代码 在Qt官网上下载Qt源代码,选择Qt 5.14.2版本。 3. 配置Qt交叉编译环境 使用命令行进入Qt源代码目录,执行以下命令: ``` ./configure -platform win32-g++ -xplatform linux-arm-gnueabihf-g++ -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=<path-to-cross-compiler> -sysroot <path-to-sysroot> ``` 其中,`<path-to-cross-compiler>`为交叉编译工具链的路径,`<path-to-sysroot>`为树莓派系统根目录的路径。 4. 编译Qt库 执行以下命令,开始编译Qt库: ``` make -j4 ``` 其中,`-j4`表示使用4个线程编译。 5. 安装Qt库 执行以下命令,安装Qt库到树莓派系统中: ``` make install ``` 6. 运行Qt应用程序 将编译好的Qt应用程序拷贝到树莓派系统中,执行以下命令运行: ``` ./myapp -platform eglfs ``` 其中,`myapp`为Qt应用程序的可执行文件名,`-platform eglfs`表示使用EGLFS平台插件。 QEMU模拟树莓派的步骤如下: 1. 安装QEMU 在Windows上安装QEMU,可以从官网上下载安装包进行安装。 2. 下载树莓派系统镜像 从树莓派官网上下载树莓派系统镜像,选择适合的版本。 3. 启动QEMU模拟器 使用以下命令启动QEMU模拟器: ``` qemu-system-arm -M raspi2 -kernel <path-to-kernel> -dtb <path-to-dtb> -sd <path-to-sdcard-image> -append "root=/dev/mmcblk0p2 rootfstype=ext4 rw" -net nic -net user,hostfwd=tcp::5022-:22 -no-reboot ``` 其中,`<path-to-kernel>`为内核镜像文件的路径,`<path-to-dtb>`为设备树文件的路径,`<path-to-sdcard-image>`为SD镜像文件的路径。 4. 连接到QEMU模拟器 使用ssh连接到QEMU模拟器: ``` ssh -p 5022 pi@localhost ``` 其中,`-p 5022`表示连接的SSH端口号,`pi`为登录用户名。 5. 安装Qt库 在QEMU模拟器上安装Qt库,可以按照上述步骤进行。 ### 回答2: 要在Windows下交叉编译Qt 5.14.2树莓派平台,需要安装一些必要的工具和设置适当的环境。 首先,我们需要安装MinGW交叉编译工具链。你可以从MinGW官方网站下载MinGW安装包,并按照指示进行安装。在安装过程中,确保选择添加MinGW至环境变量,并选择与你的Windows操作系统和位数相对应的版本。 然后,我们需要安装树莓派交叉编译工具链。你可以从树莓派官方网站上下载适用于Windows的工具链。安装过程基本上只需要将工具链解压缩到指定目录即可。 接下来,我们需要下载Qt 5.14.2的源代码。你可以从Qt官方网站下载稳定版本的源代码,然后将其解压缩到一个合适的目录。 在开始编译之前,我们需要设置适当的环境变量。打开命令行终端,使用以下命令设置环境变量: set PATH=%PATH%;<MinGW的bin目录>; <树莓派工具链的bin目录> 接下来,我们需要使用命令行终端进入Qt源代码所在的目录,然后执行以下命令: configure -prefix <树莓派交叉编译工具链的目录>/sysroot/opt/qt5 make make install 这些命令将配置、编译和安装Qt树莓派交叉编译工具链的目录。 完成上述步骤后,你就成功地将Qt 5.14.2交叉编译树莓派平台了。你可以将编译好的Qt文件复制到树莓派上,并在树莓派上使用Qt开发应用程序了。 ### 回答3: 在Windows下交叉编译Qt 5.14.2树莓派平台,我们需要准备以下工具和环境: 1. 下载并安装树莓派交叉编译工具链:首先,我们需要下载树莓派交叉编译工具链。可以从树莓派官方网站上获取适合你的树莓派版本的工具链,并进行安装。 2. 下载并安装Qt 5.14.2开发环境:从Qt官方网站上下载并安装Qt 5.14.2版本的开发工具。 3. 配置Qt交叉编译工具链:打开Qt的安装目录,找到Qt安装目录下的mkspecs文件夹。在该文件夹下可以找到一个名为"linux-rasp-pi-g++"(或者类似的)的文件夹。复制该文件夹,重命名为"linux-rasp-pi-g++-cross"(或者其他你喜欢的名称)。 4. 修改交叉编译工具链配置文件:打开刚刚复制并重命名的文件夹,找到qmake.conf文件。使用文本编辑器打开该文件,修改以下两行: ``` QMAKE_CC = <你的交叉编译器路径>/arm-linux-gnueabihf-gcc QMAKE_CXX = <你的交叉编译器路径>/arm-linux-gnueabihf-g++ ``` 将<你的交叉编译器路径>替换为你的交叉编译工具链的路径。 5. 配置Qt工具链选项:打开Qt Creator,进入"工具->选项"菜单,选择"构建和运行->工具链"选项。点击"添加"按钮,选择"GCC"类型。在弹出的对话框中,设置名称为"树莓派交叉编译工具链"(或者你喜欢的名称),设置路径为你的交叉编译工具链的路径。 注意:如果在上一步骤中有复制并重命名文件夹,你也可以直接选择刚刚复制的文件夹作为工具链路径。 6. 创建一个Qt项目并配置交叉编译工具链:打开Qt Creator,点击"新建项目->Qt Widgets应用"并按照提示创建一个新的项目。在项目设置中,选择"树莓派交叉编译工具链"作为构建套件。 7. 构建和部署:在Qt Creator中,点击"构建->构建项目",等待编译完成。然后,点击"构建->部署",将生成的二进制文件和相关的Qt文件复制到树莓派上。 完成以上步骤后,你就成功在Windows下交叉编译Qt 5.14.2树莓派平台。请注意,这只是一个简单的指南,具体操作可能因个人电脑和系统配置而有所不同。如果遇到问题,建议查阅相关文档或寻求进一步的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值