i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、
【公众号】迅为电子
【粉丝群】258811263(加群获取驱动文档+例程)
第八十四章 交叉编译QT工程
本章内容对应视频讲解链接(在线观看):
QT跨平台运行之把QT程序交叉编译到ARM开发板 → QT跨平台运行之把QT程序交叉编译到ARM开发板_哔哩哔哩_bilibili
注意!!! 视频中是以imx6ULL终结者开发板进行讲解的,以此为参考,我们本手册是以IMX8MM开发板进行讲解的。
本节内容将交叉编译QT工程,运行QT程序在开发板上。开发板上烧写yocto系统,支持QT版本为5.10版本。如果想要更换QT的版本,请参考文件系统构建篇 QT移植部分。
步骤一:
给QT程序布局,然后在构造函数添加自动设置屏幕大小的代码。代码如下:
设置好了以后把qt代码拷贝到Ubuntu上。
#include <QDesktopWidget>
#include <QStyle>
#include <QRect>
QDesktopWidget *deskTopWidget = QApplication::desktop();
QRect deskRect = deskTopWidget->availableGeometry();
int appH = deskRect.height();
int appW = deskRect.width();
this->setFixedSize(appW, appH);
setGeometry(0, 0, appW, appH);
添加完成如下图所示:
步骤二:
进入要编译的工程文件夹目录,直接使用我们在Ubuntu里面安装好的交叉编译器中的qmake生成Makefile,输入:
. /opt/fsl-imx-xwayland/4.14-sumo/environment-setup-aarch64-poky-linux //设置交叉编译器
/opt/fsl-imx-xwayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
生成的Makefile如下图所示:
步骤三:
成功生成Makefile以后,直接使用make编译就可以,编译成功以后得到的可执行文件就可以在开发板上运行。
我们使用file命令查看生成的可执行文件,如下图所示,生成的Testqt为ARM aarch64
生成的Testqt便可以拷贝到开发板上运行了。