【QT5】<知识点> IMX6ULL开发板运行QT

news2024/9/23 0:27:05

目录

1. 安装交叉编译器

2. 命令行交叉编译QT项目

3. 运行该可执行程序

4. 开发板上运行UDP程序与Ubuntu通信


1. 安装交叉编译器

第一步:进入正点原子论坛找到IMX6ULL开发板的资料,下载“开发工具”,将“交叉编译工具”中的fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh传输到Ubuntu中。

第二步:将其添加可执行权限,之后运行它。

第三步:每次编译都需要执行下列代码,使能环境变量。之后可以输入qmake -v来查看是否成功,成功的话会显示QMake的版本。

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

2. 命令行交叉编译QT项目

第一步:找到QT项目的目录。

第二步:命令行输入qmake xxx.pro。会在QT项目的目录中生成Makefile和.qmake.stash文件。

第三步:命令行中输入"make"即可编译。为了加快编译速度,可以使用多线程来编译,即命令"make - j 2" 其中2为虚拟机最大的内核数量。编译完成后,能够发现可执行文件,如下图所示。

第四步:将该可执行文件传输至开发板上。传输方法一:开发板挂载Ubuntu的nfs目录,详见【嵌入式Linux笔记】第二篇:环境搭建 & IMX6ULL开发板。传输方法二:通过U盘拷贝至开发板,U盘在Linux中的文件目录一般为/media/alientek/。

3. 运行该可执行程序

第一步:出现以下错误:

这里发现百问网的IMX6ULL_PRO开发板在运行QT项目时出现问题!!!

解决方法:在开发板的命令行中配置环境变量export QT_QPA_PLATFORM=linuxfb,之后就能显示了。

第二步:尽管界面能够显示,但是仍然报错并且触摸屏点击无效:

  • 解决上面一行错误:配置环境变量export XDG_RUNTIME_DIR=/var/run/
  • 下面是键盘库没有,由于我们开发板不用键盘,因此这里忽略。
  • 解决屏幕点击无效:配置环境变量export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1

总结:出现以上错误皆是因为环境变量没有配置好,并且每次开机后都需要配置。因此,我们做一个一劳永逸的方法,即修改开发板的配置文件/etc/profile执行vi /etc/profile,将如下代码写入文件中:

export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
export QT_QPA_PLATFORM=linuxfb
export XDG_RUNTIME_DIR=/var/run/

4. 开发板上运行UDP程序与Ubuntu通信

【1】代码来源:【QT5】<总览五> QT多线程、TCP/UDP中的单播程序。

【2】运行效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1813862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker引起的漏洞问题

前言 测试环境上的中间件和java应用都是由docker进行部署的,但是因为docker的镜像访问有时候需要外网,由此引发了问题,在docker文件中 /usr/lib/systemd/system/docker.service 原有的配置为,可以看到进行了加密 ExecStart/usr/bin/dockerd --tlsverify --tlscacert/etc/docker…

【PL理论】(19) 函数式语言:更复杂的 let-in 示例 | 作用域 | 静态作用域 vs. 动态作用域

💭 写在前面:本章我们将继续讲解函数式语言,介绍比上一章更复杂的 let-in 示例,进行分析。并讲解作用域,通过例子对比静态作用域和动态作用域的区别。 目录 0x00 复杂的 let-in 示例 0x01 作用域 0x02 静态作用域 v…

EI/CPCI/Scopus会议论文是啥?

EI/CPCI/Scopus会议论文是啥? EI/CPCI/Scopus是学术圈常见的字母缩写了,它们并非某一种期刊或是某一种杂志,而是一种便捷的论文检索工具。它们之间的区别在于,各自涵盖的领域的不同。▌EI (The Engineering Index&…

STM32硬件接口I2C应用(基于MP6050)

目录 概述 1 STM32Cube控制配置I2C 1.1 I2C参数配置 1.2 使用STM32Cube产生工程 2 HAL库函数介绍 2.1 初始化函数 2.2 写数据函数 2.3 读数据函数 3 认识MP6050 3.1 MP6050功能介绍 3.2 加速计测量寄存器 ​编辑3.3 温度计量寄存器 3.4 陀螺仪测量寄存器 4 MP60…

openlayers 绘图功能,绘制多边形,draw组件的使用,一个简单的需求引发的思考(二)

上一篇是使用openlayers原生实现的,这一节使用vue3-openlayers实现(有轮子真好) 1 需求 使用openlayers绘图功能绘制多边形 2 分析 主要是openlayers中draw功能的使用 3 实现 为了方便,就不加载底图了,直接使用绘制功能 2.1 简单实现 …

ttkbootstrap的icon图标自定义

前言 在使用ttkbootstrap库时,发现icon参数使用报错,错误代码 root ttk.Window(themename"superhero",size(1400, 700),resizable(True, True),iconphoto"1.png" )结果报错:iconphoto path is bad; using default ima…

AC/DC电源模块的原理、特点以及其在实际应用中的重要性

BOSHIDA AC/DC电源模块的原理、特点以及其在实际应用中的重要性 AC/DC电源模块是一种用于将交流电转换为直流电的设备,广泛应用于各种电子设备中。这种电源模块可以有效地将电力从电网中提取出来,并将其转换为稳定的直流电源,供给各种不同功…

【短剧看剧系统之投流版】短剧看剧系统功能更新,前端uniapp搭建开发

目录 一、常规款短剧系统和投流版的区别? 二、后端体系 1.管理端: 2.代理投流端 三、功能区别 总结: 前言: 短剧看剧系统目前在抖音端是比较热门的,最重要的功能就是可以接入第三方cps,包含类目报白…

万众瞩目的苹果AI来了,但我们用不了

关注卢松松,会经常给你分享一些我的经验和观点。 从今天开始,最了解你的不是你老婆,不是你自己,而是苹果AI。 万众瞩目的苹果WWDC24开发者大会在大半夜举办了,其中一项重要的更新是:苹果宣布要把ChatGPT集…

MES系统定制 | 生产调度车间排班计划/MES排程排产

MES系统是一种集成化的生产信息化管理系统,通过实时收集和分析车间生产数据,帮助企业实现生产过程的自动化控制和监测。它可以跟踪生产计划、设备状态、物料流动等关键指标,并提供实时报表和决策支持。在这个系统中,车间班次排班是…

零基础直接上手java跨平台桌面程序,使用javafx(五)TableView显示excel表

我们在窗口的中间加上TableVie: 在hello-view.fxml的文本中,要增加一些代码。在TableView定义中加上fx:id"TableView1",这样java代码才方便访问,在java代码中要加上FXML private TableView TableView1;表示定义TableVie…

如何禁止使用U盘|禁止使用U盘的四个方法

你知道U盘滥用对企业的危害,总接下来有这三点: 数据泄露:U盘可以方便地存储和传输大量数据,但如果U盘丢失或被盗,其中的数据可能会被他人获取,从而导致数据泄露。病毒传播:U盘是病毒传播的常见途径之一。如…

基于若依的ruoyi-nbcio-plus里抄送人多页选择人员的bug修复

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

点云技术在AI绘画中的革新性应用

引言: 随着人工智能的不断演进,艺术与科技的交融催生了AI绘画这一全新的创作方式。AI绘画不仅为艺术家提供了前所未有的工具,也拓展了艺术表达的边界。在这一进程中,点云技术作为一种重要的三维数据处理手段,其在AI绘画…

深入解析:常用的IP地址类型及其应用

随着互联网的日益发展,IP地址已经成为了我们日常生活中不可或缺的一部分。无论是浏览网页、发送邮件,还是进行在线视频通话,都离不开IP地址的参与。然而,对于许多非专业人士来说,IP地址的分类及其应用可能还是一个相对…

1502 - JUC高并发

慢慢挣,今天比昨天更有钱,明天比今天有钱,后天比明天有钱。 0.思维导图 6.多线程锁 synchronized实现同步的基础:Java中的每一个对象都可以作为锁。 具体表现为以下3中形式 对于普通同步方法,锁是当前实例对象。对于…

Python 基础001 pythonpycharm安装

1 安装python 尽量在官网安装 根据电脑情况下载,下载完需要重启电脑 python安装路径自定义 添加环境变量(add path)需要勾选,若无勾选,手动更新环境变量 确认python是否安装成功: 方法一:有安装成功&am…

零基础直接上手java跨平台桌面程序,使用javafx(六)查询sqlite数据显示到TableView中

我们使用jdbc查询sqlite的一个表显示到TableView中 在hello-view的onMouseClicked里面填上“openclick2”,然后在HelloController写上openclick2的相关代码FXML protected void openclick2() { }。我们要先配置好sqlite的jdbc驱动(略)。openc…

代码随想录算法训练营第二十九天【回溯】| 491,46,47

491. Non-decreasing Subsequences 排列用startindex 树枝不去重,树层去重 子集问题结果在结点(个数>2) class Solution(object):def findSubsequences(self, nums):""":type nums: List[int]:rtype: List[List[int]]&…

如何在网上下载到最新或者历史QGIS各个版本的C++源码

背景: 博主写下这篇文章的时候已经是PyQGIS下二开了两年,开发一些功能必须得去阅读QGIS的C版本源码,还得考虑到QGIS的长期稳定版和最新版的源码区别。 所以如何去下载到QGIS的源码,就成了当务之急。 QGIS3.36.3的C源码长得像这…