韦东山IMX6ULL Linux开发板基于Buildroot系统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
把上面编译出来的 100ask-imx6ull-pro512d-systemv-v1.img重命名为emmc.img(或sdcard.img),把emmc.img(或sdcard.img) 放到“100ask_imx6ull 烧写工具”的 files 目录里,就可以使用工具烧写到 EMMC(或 SD/TF 卡)。
具体参考第三篇第7章:烧写整个系统或更新部分系统
连接 USB OTG 线,设置USB启动:
打开烧写工具烧写整个系统:
二. 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程序到开发板
(1)创建工程
在这里我们创建一个文件名为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 拷贝到开发板上:
然后执行该文件:
开发板显示如下:测试通过
韦东山IMX6ULL Linux开发板基于Buildroot系统QT应用环境配置开发运行的更多相关文章
- iTOP4412开发板-使用buildroot搭建最简单的linux
本文档介绍的是使用buildroot搭建最简单的linux文件系统,Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfi ...
- 韦东山 嵌入式linux教程 笔记
@ 目录 资源链接 一.常用命令 二.shell 三.如何更改PATH? 四.路径 五.vi编辑器 六.进阶命令 七.NAT配置网络 (第2篇-P34) 八.开发板挂载 Ubuntu 的 NFS 目录 ...
- 迅为iTop开发板使用buildroot构建opencv文件系统
这次我们来介绍使用buildroot构建opencv开发环境,buildroot 是 Linux平台上一个构建嵌入式Linux系统的框架.整个buildroot是由 Makefile脚本和Kconfi ...
- 4418开发板基于Linux-c测试程序的编译和运行
基于iTOP4418开发板的Linux-c的测试程序iTOP-4418 开发板可以运行的文件系统很多,在具体的文件系统上实现特定功能前,可以使用 Linux-c 程序来测试硬件以及驱动.而且这些程序很 ...
- RP4412开发板在Android系统编译生成ramdisk-uboot.img
荣品RP4412开发板在android系统编译的时候,怎么生成ramdisk-uboot.img生成流程分析: mkimage -A arm -O linux -T ramdisk -C none - ...
- 迅为iTOP-4418开发板-Android5.1系统编译补充
基于iTOP-4418开发板-Android5.1系统编译补充 5.6 编译-20181225 日期之后的源码 本文档补充介绍 4418 编译网盘目录 “J:\局域网共享_阮\iTOP4418 开发板 ...
- 【STM32-V5】STM32F407开发板开源, 丰富软件资源, 强劲硬件配置, 配套500实例, 10套手册带视频教程2019-12-12
淘宝购买地址:购买地址链接 从2013年5月份发布至今,开发板硬件更新过6个版本,软件资料更新过85次.当前标准库最新版本V8.8,HAL库最新版本V1.1 安富莱微信公共平台,欢迎大家关注(打造高质 ...
- NanoPC-T4/RK3399开发板Ubuntu FriendlyCore系统开机自动运行客户程序
RK3399开机自动运行客户程序 比如hellohello.c 交叉编译:aarch64-linux-gcc hello.c -o hello使用SecureCRT软件通过串口下载到开发板rz修改文件 ...
- 推荐两款远程管理Linux工具(基于Windows系统)
推荐两款远程管理Linux工具(基于Windows系统) 1.Xshell 百度百科:Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows ...
- Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...
随机推荐
- go-admin开发小技巧
搜索条件参考下面的文件 https://github.com/go-admin-team/go-admin-core/blob/master/tools/search/query_test.go ty ...
- cesium教程6-用entity绘制点线面label和billboard广告牌
注意:billboard显示的图片是立体的,会跟随角度而变化的. pinBuilder.fromText()用于创建自定义地图图钉 完整示例代码: <!DOCTYPE html> < ...
- Linux(四):Linux的打包和压缩详解
关于Linux的文件操作,这里汇总一下打包和压缩的一些命令,以及命令使用的详情. 打包(归档)和压缩 归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中.归档文件没有经过压缩, ...
- 机器学习策略篇:详解为什么是人的表现?(Why human-level performance?)
为什么是人的表现? 在过去的几年里,更多的机器学习团队一直在讨论如何比较机器学习系统和人类的表现,为什么呢? 认为有两个主要原因,首先是因为深度学习系统的进步,机器学习算法突然变得更好了.在许多机器学 ...
- PyQt5自定义信号
一.简介 在 PyQt5 中,自定义信号是一个常见的任务,通常用于在对象之间传递信息或触发特定行为.自定义信号需要继承自 QtCore.pyqtSignal 并定义其参数类型. 二.操作步骤 1.导入 ...
- 前后端分离项目(vue+springboot)集成pageoffice实现在线编辑office文件
前后端分离项目下使用PageOffice原理图 集成步骤 前端 vue 项目 在您Vue项目的根目录下index.html中引用后端项目根目录下pageoffice.js文件.例如: <scri ...
- java学习之旅(day.18)
网络编程 概述 计算机网络:自己百度吧 网络编程的目的:传播交流信息.数据交换.通信 想要达到这个效果需要什么: 如何准确的定位网络上的一台主机 端口 定位到这个计算机上的某个资源 找到了这个主机,如 ...
- 轻松下载k8s.gcr.io,gcr.io,quay.io镜像
目录 一.系统环境 二.前言 三.使用现成的镜像代理仓库下载镜像 3.1 使用阿里云镜像仓库 3.2 使用lank8s.cn镜像仓库 3.3 使用中科大镜像 一.系统环境 服务器版本 docker软件 ...
- sqlServer 重复数据项处理,只选其中一条,保留一条
select * from table where id in (select max(id) from table group by [去除重复的字段名列表,....]) --删除 from tab ...
- Pandas学习之路【1】
安装pandas: pip install pandas pandas读取数据: 数据类型 读取方式 csv, tsv, txt pd.read_csv Excel pd.read_excel mys ...