米尔NXP i.MX 93开发板的Qt开发指南

news2024/11/18 13:38:11

1. 概述

Qt 是一个跨平台的图形应用开发框架,被应用在不同尺寸设备和平台上,同时提供不同版权版本供用户选择。米尔 NXP i.MX 93 开发板(MYD-LMX9X开发板)使用 Qt6.5 版本进行应用开发。在 Qt 应用开发中,推荐使用 QtCreator 集成开发环境,可以在 Linux PC 下开发 Qt 应用,自动化地交叉编译为开发板的 ARM 架构。 

本章使用 Yocto 构建的 SDK 工具作为交叉编译系统,配合 QtCreator 快速开发图形类应用程序。

2. 硬件资源 

  • 米尔 NXP i.MX 93 开发板(MYD-LMX9X开发板)

3. 软件资源 

  • ubuntu 20.04 64bit

  • Qt6.5

  • 交叉编译链

4. 环境准备 

需要 ubuntu 桌面系统,后续均在 ubuntu 20.04 64bit 版本下操作,桌面系统请自行安装。

5. 安装Qt6.5

从Qt下载官网https://download.qt.io/archive/online_installers/4.5/下载 qt-unified-linux-x64-4.5.2-online.run 安装包。

  • 安装 Qt 所需要的库

在安装 QtCreator 之前需要对主机的环境进行配置,请安装下列资源包

sudo apt-get update
sudo apt install --reinstall libxcb-xinerama0
sudo apt install cmake build-essential libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev cmake

  • 将安装包放到 Ubuntu 下运行

sudo chmod 777 qt-unified-linux-x64-4.5.2-online.run
./qt-unified-linux-x64-4.5.2-online.run --mirror https://mirrors.tuna.tsinghua.edu.cn/qt

  • 登录

运行命令后进入安装界面,填入账号,如若没注册需要先自行注册。

图5-1. 输入账号密码

  •       选择

     开发者可选择个人开发者。

图5-2. 选择开发者

  • 禁止发送

选择禁止发送反馈内容。

图5-3. 选择禁止发送

  • 选择安装路径

选择安装路径,建议安装在目录/opt 下。

图5-4. 安装路径

  • 选择安装内容

因为我们需要安装6.5版本,所以需要勾选以下内容。

图5-5. 选择安装内容

  • 安装

选择好安装内容好连续点击下一步到安装页面。

图5-6. 等待安装完成

6. 配置交叉编译环境 

1)打开 QtCreator,请从终端执行"qtcreator.sh"来启动 QtCreator,参考如下:

2)如果运行失败则需要安装插件,命令如下

3)再次运行成功,出现选项对话框,点击 Edit ,继续点击 Preferences ,在 Kits 栏选择 Compilers 标签,如下图所示。

图6-1. 配置Compilers

4)点击右侧 Add ,弹出下拉列表后,选择 GCC->C++ ,在下面填写"Name"为"LMX9X- G++","Compiler path"点击旁边的"Browse.."按钮选择到 aarch64-poky-linux-g++ 的路径,例子中的路径是"/opt/fsl-imx-xwayland/6.1-mickledore/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++"。(此为米尔提供的编译链,详情请查看《MYD-LMX9X_Linux软件开发指南》2.2章节)填写完成后,点击"Apply"

图6-2. 配置GCC

5)选择"Debuggers"标签,在右侧点击"Add",在name处输入"93-gdb",在path选择路径为/opt/fsl-imx-xwayland/6.1-mickledore/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gdb,填写完成后点击"Apply",如图6-3。

图6-3. 配置Debugger

6)选择"Qt Version"标签,在右侧点击"Add",会弹出 qmake 路径选择对话框,这里以"/opt/fsl-imx-xwayland/6.1-mickledore/sysroots/x86_64-pokysdk-linux/usr/bin/qmake"为例子。选择"qmake"文件后,点击"Open"按钮。"Version name"改为"Qt %{Qt:Version} (LM93-sytem)"。然后点击"Apply"按钮。

图6-4. 选择qmake

7) 选择左侧"Device",点击右边的"Add"按钮,填写内容"Name"为"MYIR-LM93-Board","Host name"为开发板的 IP 地址(可以暂时填写任意一个址),"Username"为"root",然后击"Apply"。(此项为可选项)

图6-5. 选择开发板

8) 点击左侧"Build & Run"回到"Kits"标签下,"Name"设置为"LM93-dev-kit","Device"选择"MYD-LM93-Board"选项了。"Sysroot"选择目标设备的系统目录,这里以"/opt/fsl-imx-xwayland/6.1-mickledore/sysroots/x86_64-pokysdk-linux"例。"Compiler"选择之前配置的名称"93-GCC","Qt version"选择之前配置的名称"Qt6.5.0 (LM93-System)","Qtmkspec"填写为"linux-oe-g++"。其它默认即可,最后点击"Apply"和"OK"按钮。

图6-6. Kits配置

9)将 MXAPP-Qt6.tar.gz 拷贝到 Ubuntu 下的一个工作目录中并解压出源代码。配置为相应的编译工具套件,就可以编译此例程。在菜单栏选择"File"->"Open File or Project",在打开的对话框中,浏览到"mxcpp"例程的目录下,选择"mxcpp.pro"文件,点击"Open"按钮。项目打开后,在左侧菜单列中,选择"Projects"图标,右侧界面切换为 manage kits 管理界面,在"Build & Run"标签下,选择"LM93"选项的 kit,这样项目就会使用"LM93 "的相关配置 kit 构建应用。然后右键选择"mxapp2"点击 Build 。

图6-7. 开始编译

图6-8. 编译完成

QtCreator 构建 mxapp 项目后,编译好的二进制文件存放在指定的目录下。然后将 mxapp 文件拷贝到开发板下运行即可

图6-9. 保存路径

7. 参考资料

  • 下载桌面版Ubuntu

https://ubuntu.com/download/desktop

  • QT开发指导

Qt | Tools for Each Stage of Software Development Lifecycle

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

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

相关文章

初级网络工程师之入门到入狱(一)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、交换机二、路由器三、DHCP(动态主机配置协议)四、路由器配置 DHCP自…

OpenAI发布GPT-4思维破解新策略,Ilya亦有贡献!

OpenAI正在研究如何破解GPT-4的思维,并公开了超级对齐团队的工作,Ilya Sutskever也在作者名单中。 论文地址:https://cdn.openai.com/papers/sparse-autoencoders.pdf 代码:https://github.com/openai/sparse_autoencoder 特征可…

【Qt秘籍】[009]-自定义槽函数/信号

自定义槽函数 在Qt中自定义槽函数是一个直接的过程,槽函数本质上是类的一个成员函数,它可以响应信号。所谓的自定义槽函数,实际上操作过程和定义普通的成员函数相似。以下是如何在Qt中定义一个自定义槽函数的步骤: 步骤 1: 定义槽…

贪吃蛇游戏的编程之旅:在Windows PyCharm中使用Python

在电脑游戏的发展史中,贪吃蛇游戏无疑是其中的经典之作。许多人对其简单而上瘾的游戏玩法念念不忘。对编程爱好者来说,重新编写一个贪吃蛇游戏不仅是对青春回忆的一种致敬,也是一个极佳的学习机会。本文将引导你在Windows系统的PyCharm环境下…

写入文件内容

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在实例01中,虽然创建并打开一个文件,但是该文件中并没有任何内容,它的大小是0KB。Python的文件对象提供了write()…

MFC实现子控件focus焦点上下移动父控件ListView和Gridview也跟着向上下移动

项目中要实现mfc功能,然后子控件焦点下移,LIstView和Gridview父控件不会下移,所以就有这个文章。废话不多说直接上代码。 MFCGridView.java import android.content.Context; import android.util.AttributeSet; import android.view.View;…

【Cityengine】Cityengine生产带纹理的建筑模型导入UE4/UE5(下)

【Cityengine】Cityengine生产带纹理的建筑模型导入UE4/UE5(下) 一、导出数据(2022中文版案例)二、安装datasmith插件三、导入数据四、检查导入材质是否正常五、编辑替换材质六、安装模型编辑插件七、编辑替换建筑规则 一、导出数…

LLM的基础模型7:Positional Encoding

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

路径

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 用于定位一个文件或者目录的字符串被称为一个路径。在程序开发时,通常涉及两种路径,一种是相对路径,另一种是绝对…

关闭文件及使用with语句

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 1 关闭文件 打开文件后,需要及时关闭,以免对文件造成不必要的破坏。关闭文件可以使用文件对象的close()方法实现。close()方…

学习算法笔记(7.5)-贪心算法(股票售卖问题)

学到这里的大家应该都非常清楚贪心算法到底是怎么一回事了,说白了就是动态规划的一种特例,没有动态规划的使用范围广,但是效率却比动态规划效率高,贪心算法不考虑之前的情况,只考虑当前的最优选择以期达到最优的结果。…

通过血清拉曼光谱进行COVID-19的高效初步筛查

通过血清拉曼光谱进行COVID-19的高效初步筛查 原创 小王搬运工 时序课堂 2024-06-04 20:04 四川 论文地址:https://analyticalsciencejournals.onlinelibrary.wiley.com/doi/full/10.1002/jrs.6080 论文源码:无 期刊:JOURNAL OF RAMAN SPE…

数据挖掘实战-基于Catboost算法的艾滋病数据可视化与建模分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

Qt 简易Word

Ui界面如下: 查找和替换界面: 具体代码: GitHub : 简易Word Gitee : 简易Word

package.json中resolutions的使用场景

文章目录 用途配置示例使用方法注意事项和peerDependencies有什么不同peerDependenciesresolutions 总结 ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的…

九大微服务监控工具详解

Prometheus Prometheus 是一个开源的系统监控、和报警工具包,Prometheus 被设计用来监控“微服务架构”。 主要解决: 监控和告警:Prometheus 可以对系统、和应用程序进行实时监控,并在出现问题时发送告警;数据收集和…

构建体育直播平台源码:深度解析数据分析模块的核心展示内容

在现代的体育直播平台中,数据分析展示已经成为不可或缺的一部分。如下参考借助“东莞梦幻网络科技”提供的体育直播源码,打造的平台,并通过表格形式为用户列出以下数据分析内容: 1、积分排名:反映了各支队伍在赛季中的…

【全开源】JAVA打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车源码

:构建便捷出行新体验 一、引言:探索打车系统小程序源码的重要性 在数字化快速发展的今天,打车系统小程序已成为我们日常生活中不可或缺的一部分。它以其便捷、高效的特点,极大地改变了我们的出行方式。而背后的关键,…

Android14 WMS-窗口绘制之relayoutWindow流程(一)-Client端

Android14 WMS-窗口添加流程(一)-Client端-CSDN博客 Android14 WMS-窗口添加流程(二)-Server端-CSDN博客 经过上述两个流程后,窗口的信息都已经传入了WMS端。 1. ViewRootImpl#setView 在窗口添加流程(一)中,有这个方法: http://aospxref…

Ubuntu22.04 下 pybind11 搭建,示例

Pybind11 是一个轻量级的库,用于在 C 中创建 Python 绑定。Ubuntu22下安装pybind11步骤如下: 1. 安装 pybind11 1.1 pip 命令安装 pip3 install pybind11 1.2 源代码安装 安装依赖库: sudo pip install -i https://pypi.tuna.tsinghua.e…