将QT移植到IMX6ULL开发板

news2024/9/21 2:33:20

文章目录

  • 前言
  • 一、编译系统
    • 1.设置交叉编译工具链
    • 2.编译系统
    • 3.烧写
  • 二、Linux中下载QT
    • 1.安装 Qtcreator
    • 2.创建第一个程序
    • 3.配置 QtCreator 开发环境
      • (1)打开选项界面
      • (2)选择编译器
      • (3)设置编译器
      • (4)添加 QT 版本
      • (5)配置 kit 标签
    • 4.移植第一个QT程序到IMX6ULL开发板
      • (1)创建 imx6ull_hello_button 工程
      • (2)在开发板运行 Qt 程序

前言

在这里使用的是韦东山老师的IMX6ULL开发板,接下来我将演示如何移植QT程序到该开发板。

一、编译系统

1.设置交叉编译工具链

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

2.编译系统

cd /home/book/100ask_imx6ull-sdk/Buildroot_2020.02.x
make clean
make 100ask_imx6ull_pro_ddr512m_systemV_qt5_defconfig
make all -j4

在这里插入图片描述

编译成功后文件输出路径为 output/images

3.烧写

把上面编译出来的 100ask-imx6ull-pro512d-systemv-v1.img重命名为emmc.img(或sdcard.img),把emmc.img(或sdcard.img) 放到“100ask_imx6ull 烧写工具”的 files 目录里,就可以使用工具烧写到 EMMC(或 SD/TF 卡)。

连接 USB OTG 线,设置USB启动:

在这里插入图片描述

打开烧写工具烧写整个系统:
在这里插入图片描述
在这里插入图片描述

二、Linux中下载QT

1.安装 Qtcreator

QtCreator 下载网址:https://download.qt.io/official_releases/qtcreator/

这里我使用的 qtcreator 版本为 5.12.9:

此安装过程类似 Windows 下应用的安装方法,一路点击下一步即可。

chmod +x qt-opensource-linux-x64-5.12.9.run
sudo ./qt-opensource-linux-x64-5.12.9.run

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述
在这里插入图片描述

安装成功后打开QT,可以直接打开,也可以通过命令打开,命令如下:

./qtcreator.sh &

这里的“&”符号代表后台运行, 不占用控制命令终端

在这里插入图片描述
在这里插入图片描述

2.创建第一个程序

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

测试成功:

在这里插入图片描述

3.配置 QtCreator 开发环境

在这里我们配置 QtCreator 开发环境主要是为了方便将测试程序移植到Linux开发板上。

(1)打开选项界面

在 QtCreator 界面中,依次点击 tools -> options:

在这里插入图片描述

(2)选择编译器

在出现的选项对话框中,在左边点击 Kits,右边选择 Compilers 标签,并点击 Add 选择 Custom->C++:

在这里插入图片描述

(3)设置编译器

在弹出的对话框中填写以下内容: Compiler path , Make path 和 ABI; 填写完成后,点击 Apply 进行保存。

在这里插入图片描述

(4)添加 QT 版本

假设你已经按照上面编译出了 QT 的 SDK。 以 IMX6ULL 为例,你已经做了这些事情: 在执行“make 100ask_imx6ull-qt_defconfig”配置后,再执行“make all”可以编译出 QT 的 SDK 包。
可以在/home/book/100ask_imx6ull-sdk 下执行这个命令找到 qmake,记住它的目录:

find -name qmake

在这里插入图片描述

添加qmake路径:在 QT 设置界面中,选择 Qt Version 标签,在右侧点击“Add…”,会弹出对话框,切换目录到选择 qmake 文件后,点击 open 按钮,设置完成之后,点击 Apply 按钮保存。

注意:qmake 文件是 buildroot 编译根文件系统后生成的,文件在 buildroot 目录下。

在这里插入图片描述

(5)配置 kit 标签

继续选择上边的 Kits 标签,点击右侧 Add,填写相应内容如下图:

在这里插入图片描述

配置时发现上面有红色感叹号,鼠标放在上面看看哪里出错。

error:编译器为不同的ABls生成代码,那我们就按照它的提示修改成相同的试试,结果是修改后就不报错了。
在这里插入图片描述

修改如下:

在这里插入图片描述

配置完成后点击 apply,点击 OK。

4.移植第一个QT程序到IMX6ULL开发板

(1)创建 imx6ull_hello_button 工程

在这里我们创建一个文件名为imx6ull_hello_button的工程,完成IMX6ULL开发板显示文本hello和一个按钮button就算测试成功。

运行 QtCreator 后,在菜单栏选择 File -> New File or Project,或者直接快捷键 crtl + n,然后依次选择 Application(Qt) -> Qt Widgets Application ,最后点击 Choose。

在这里插入图片描述

设置命名和存放路径,然后点击 Next 进入下一步:

在这里插入图片描述

设置构建系统,然后点击 Next 进入下一步:

在这里插入图片描述

选择基类,当前的的应用继承自哪种 Widget,默认选择 QMainWindow,然后点击 Next 进入下一步:
在这里插入图片描述

默认none,继续点击next:

在这里插入图片描述

选择之前添加好的 Kits(100ask_imx6ull),继续点击next:

在这里插入图片描述

默认:

在这里插入图片描述

点击绘制ui:添加Hello文本和Button按键

在这里插入图片描述
在这里插入图片描述

点击菜单栏 Build -> Build Project hellowrld,开始编译、构建项目。

在这里插入图片描述

imx6ull_hello_and_button 项目构建成功后,编译好的二进制文件存放在刚刚设置的目录中,可以使用 file 命令查看该 APP 是否被编译为 ARM 架构:

在这里插入图片描述

(2)在开发板运行 Qt 程序

使用 ssh 远程登陆开发板,将生成的 QT 程序的可执行文件 helloworld 拷贝到开发板上:
在这里插入图片描述

然后执行该文件:

在这里插入图片描述

开发板显示如下:测试通过

在这里插入图片描述

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

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

相关文章

【Go】函数的使用

目录 函数返回多个值 init函数和import init函数 main函数 函数的参数 值传递 引用传递(指针) 函数返回多个值 用法如下: package mainimport ("fmt""strconv" )// 返回多个返回值,无参数名 func Mu…

数组算法(二):交替子数组计数

1. 官方描述 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 。 返回数组 nums 中交替子数组的数量。 示例 1: 输入: nums [0,1,1,1] 输出: 5 解释&#…

年销量超1亿箱,三得利BOSS咖啡如何凭借人群战略打造极致产品力?

BOSS咖啡诞生于1992年,在可口可乐、朝日、麒麟等饮料巨头先后入局,市场竞争非常激烈的情况下,BOSS咖啡成为受国民欢迎的品牌,它是如何做到的呢? 罐装咖啡趋势崛起,各大品牌推出罐装咖啡 自1980年代起,罐装…

大语言模型的应用探索AI Agent初探!

前言 大语言模型的应用之一是与大语言模型进行聊天也就是一个ChatBot,这个应用已经很广泛了。 接下来的一个应用就是AI Agent。 AI Agent是人工智能代理(Artificial Intelligence Agent)的概念,它是一种能够感知环境、进行决策…

PL/SQL安装+汉化教程

PL/SQL安装教程 一、安装: 登陆官网:PL/SQL Developer - Allround Automations下载 下载PL/SQL稳定版本12.0.7 根据自己计算机版本安装相适配的版本。我这里安装X64-bit版本 进行安装: 根据情况去更改安装,我这里全部下一步…

服务注册Eureka

目录 一、背景 1、概念 2、CAP 理论 3、常见的注册中心 二、Eureka 三、搭建 Eureka Server 1、搭建注册中心 四、服务注册 五、服务发现 六、Eureka 和 Zooper 的区别 一、背景 1、概念 远程调用就类似于一种通信 例如:当游客与景区之间进行通信&…

代码随想录-Day51

115. 不同的子序列 给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 7 取模。 示例 1: 输入:s “rabbbit”, t “rabbit” 输出:3 解释: 如下所示, 有 3 种可以从 …

【SMPL简介】SMPL: A Skinned Multi-Person Linear Model【源码复现】

【SMPL简介】SMPL: A Skinned Multi-Person Linear Model【源码复现】 一、前言环境搭建运行demo.py 参考链接 一、前言 SMPL是一种3D人体建模方法.在数字人或者人物角色三维重建领域有着广泛应用 支持人体的各种形状及动作 可以简单理解为通过训练获取的人物模型 常用的模型有…

信息技术课堂纪律管理:从混乱到秩序的智慧转型

引言: 在信息爆炸的时代,信息技术课程如同一把开启未来世界大门的钥匙,为学生们搭建起探索科技奥秘的桥梁。然而,面对着屏幕背后的无限诱惑,维持课堂纪律,确保学生们专注于学习,成为了每位信息…

Flask项目搭建及部署 —— Python

flask搭建及部署 pip 19.2.3 python 3.7.5 Flask 1.1.1 Flask-SQLAlchemy 2.4.1 Pika 1.1.0 Redis 3.3.11 flask-wtf 0.14.2 1、创建flask项目: 创建完成后整个项目结构树: app.py: 项⽬管理⽂件,通过它管理项⽬。 static: 存放静态…

使用tcpdump抓取本本机的所有icmp包

1、抓取本机所有icmp包 tcpdump -i any icmp -vv 图中上半部分,是源主机tmp179无法ping通目标主机192.168.10.79(因为把该主机关机了)的状态,注意看,其中有unreachable 图中下半部分,是源主机tmp179可以p…

张量分解(2)——张量运算(内积、外积、直积、范数)

🍅 写在前面 👨‍🎓 博主介绍:大家好,这里是hyk写算法了吗,一枚致力于学习算法和人工智能领域的小菜鸟。 🔎个人主页:主页链接(欢迎各位大佬光临指导) ⭐️近…

国内仅存的3个完美替代Google安卓商店的APP与网站

Google安卓商店在国内访问限制,部分谷歌商店镜像站点也相继受限,现分享目前仍可在国内顺畅使用的应用程序商店与网站资源,请大家且用且珍惜。 2024年7月8日国内验证有效的资源 F-Droid 简介:F-Droid,专注于开源软件的…

独立站爆款产品的选品思路及底层逻辑拆解

在这个竞争激烈的跨境电商市场,有一件事情比网站设计、营销策略、物流服务都更重要。那就是选品。跨境独立站选品是独立站成功的第一步,如果选错了产品,那么所有努力都可能白费。可能会面临库存积压、利润低迷、客户流失等问题。但是如果选对…

从数据到洞察:DataOps加速AI模型开发的秘密实践大公开!

作者 | 代立冬,白鲸开源科技联合创始人&CTO 引言 在AI驱动的商业世界中,DataOps作为连接数据与洞察的桥梁,正迅速成为企业数据战略的核心。 在WOT全球技术创新大会2024北京站,白鲸开源联合创始人&CTO 代立冬 在「大数据…

NFT 技术在艺术领域的应用

NFT (Non-Fungible Token) 技术在艺术领域有着广泛的应用,为艺术家和艺术品收藏家带来了新的机遇和挑战。以下是 NFT 技术在艺术领域的一些主要应用。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 数字艺术品确权和交…

【Spring Boot】Spring AOP动态代理,以及静态代理

目录 Spring AOP代理一. 代理的概念二. 静态代理三. JDK代理3.1 重写 invoke 方法进⾏功能增强3.2 通过Proxy类随机生成代理对象 四. CGLIB代理4.1 自定义类来重写intercept方法4.2 通过Enhancer类的create方法来创建代理类 五. AOP源码剖析 总结(重中之重,精华) Sp…

【人工智能】—基于成都市各区(市)县租房价格预测建模研究

引言 随着城市化进程的加速,人口流动日益频繁,租房市场作为城市生活的重要组成部分,其价格波动对居民生活质量和城市经济发展具有显著影响。成都市,作为中国西部地区的经济、文化、交通和科技中心,近年来吸引了大量人…

昇思25天学习打卡营第17天|linchenfengxue

RNN实现情感分类 概述 情感分类是自然语言处理中的经典任务,是典型的分类问题。本节使用MindSpore实现一个基于RNN网络的情感分类模型,实现如下的效果: 输入: This film is terrible 正确标签: Negative 预测标签: Negative输入: This fil…

1.8.0-矩阵乘法的反向传播-简单推导

1相关资料 之前分享过一个博客里面写的,我们大致了解并记住结论的博客:【深度学习】7-矩阵乘法运算的反向传播求梯度_矩阵梯度公式-CSDN博客;这里再分享一下自然语言处理书上关于这部分的推导过程:3-矩阵相乘-梯度反向传播的计算…