飞思卡尔I.MX6Q-QT5的移植
专栏说明
本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2)、视频编解码(VPU)、视频格式转化(IPU)、H264封装为MP4、QT5的移植和显示。
飞思卡尔I.MX6Q-LTIB安装配置
飞思卡尔 I.MX6Q-vpu视频编解码
飞思卡尔 I.MX6Q-ipu视频流格式转换
飞思卡尔 I.MX6Q-封装H246为MP4
飞思卡尔 I.MX6Q-高分辨率(1080P)视频采集编码
飞思卡尔I.MX6Q-QT5的移植
飞思卡尔 I.MX6Q-摄像头采集QT5显示和分辨率适配
一、前言
QT由于跨平台而得到广泛的应用,并且QT也是开源的,现在许多的嵌入式产品上都使用QT界面,本文是在飞思卡尔I.MX6Q嵌入式设备上对QT进行移植,使用arm-none-linux-gnueabi交叉编译器,实现对于QT界面的操作。
二、QT的交叉编译
1、下载网址:https://download.qt.io/archive/qt/
2、解压qt-everywhere-opensource-src-5.5.1.tar.gz
tar -vxf qt-everywhere-opensource-src-5.5.1.tar.gz
3、配置交叉编译环境
本文使用的是arm-none-linux-gnueabi-g++交叉编译器,把qtbase/mkspecs/linux-arm-gnueabi-g++/拷贝为qtbase/mkspecs/arm-none-linux-gnueabi-g++;
cp qtbase/mkspecs/linux-arm-gnueabi-g++ qtbase/mkspecs/arm-none-linux-gnueabi-g++ -rf
(1)修改qtbase/mkspecs/arm-none-linux-gnueabi-g++/qmake.conf
#
# qmake configuration for building with arm-none-linux-gnueabi-g++
#MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublibQT_QPA_DEFAULT_PLATFORM = linuxfb #指定Qt显示驱动方式
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a #指定处理器架构
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)# modifications to g++.conf
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++# modifications to linux.conf
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_NM = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
(2)增加configure配置脚本
在qt-everywhere-opensource-src-5.5.1目录下创建autoConfigure.sh脚本
vi autoConfigure.sh
#!/bin/sh
./configure \
-prefix /opt/qt5.5.1 \
-release \
-opensource \
-no-accessibility \
-make libs \
-xplatform arm-none-linux-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info \
-I./tslib/_install/include \
-L./tslib/_install/lib
其中-prefix /opt/qt5.5.1代表我们编译完QT5.5.1后要安装地址,编译完成后,所有的库文件和环境文件都需要拷贝到设备这个目录下;-xplatform arm-none-linux-gnueabi-g++ 为交叉编译器,这里会链接到上面qtbase/mkspecs/arm-none-linux-gnueabi-g++/qmake.conf文件;
4、编译安装Qt
# make -j4 #-j 4 表示4个线程同时编译,减少编译时间
# sudo make install #安装Qt
编译完成后在/opt/qt5.5.1/命令下会生成 bin doc imports include lib mkspecs plugins qml translations文件夹;
查看编译是否成功:
# cd ./_install/bin
# ./qmake -v #查看Qt,编译成功
QMake version 3.0
Using Qt version 5.5.1 in /opt/qt5.5.1/lib
三、配置环境
2、开发板中的环境配置
(1)把编译好的QT库文件和环境文件拷贝到开发板/opt/qt5.5.1/下
(2)设置QT的运行环境:在etc/profile中添加下面内容
#添加QT库路径
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib:/opt/qt5.5.1/lib"
export PATH
export LD_LIBRARY_PATH
#设置使用linuxfb,同时设置QT显示分辨率720x576
QT_QPA_PLATFORM=linuxfb:fb=/dev/fb1:size=720x576:
export QT_QPA_PLATFORM
#设置QT平台相关文件路径
QT_QPA_PLATFORM_PLUGIN_PATH=/opt/qt5.5.1/plugins/
export QT_QPA_PLATFORM_PLUGIN_PAT
3、编译QT程序,执行程序
新建一个最简单的QT工程,编写代码,使用上面编译的qmake生成Makefile,然后make就可以生成在设备上面运行的程序,
将生成的执行文件拷贝到设备中就可以跑QT应用程序了。
4、中文支持
在编译出的/opt/qt5.5.1/lib/下是没有fonts,在这里新建/opt/qt5.5.1/lib/fonts/命令,下载一个wqydkmh.ttf文库放到fonts下,
飞思卡尔I.MX6Q-QT5的移植相关推荐
- 飞思卡尔 S12 (X)串口下载移植
1 参考文章 https://blog.csdn.net/hellolru/article/details/84939856 和 Serial Bootloader for S12(X).pdf 2 ...
- 飞思卡尔 I.MX6Q-vpu视频编解码
专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示. 飞思卡尔I ...
- 飞思卡尔 I.MX6Q-高分辨率(1080P)视频采集编码
专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示. 飞思卡尔I ...
- 飞思卡尔I.MX6Q-LTIB安装配置
专栏说明 本专栏针对飞思卡尔I.MX6Q芯片产品开发,主要为视频的采集(V4L2).视频编解码(VPU).视频格式转化(IPU).H264封装为MP4.QT5的移植和显示. 飞思卡尔I ...
- 飞思卡尔 k60/k64 移植FreeRTOS+USB
每年七八月份是智能车大赛的比赛时间,前段时间,学校车队的学弟问我嵌入式系统的问题,于是笔者拿起多年未碰的K60/K64芯片,搭建了一个FreeRTOS+USB的系统框架.文章结尾提供源 ...
- 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第一篇 yocto项目建立
本移植过程参考飞思卡尔的Freescale_Yocto_Project_User's_Guide.pdf文档,请自行到飞思卡尔下载fsl-yocto-L4.1.15_1.0.0-ga.zip文件夹. ...
- 3g android4 移植 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 Android——4.2 - 3G移植之路
点击打开链接 3g android4 移植 点击打开链接 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 点击打开链接 Android--4.2 - 3G移 ...
- 飞思卡尔烧写工具mfgtools的使用
注意:当时遇到烧录之后各种重启问题,还有system.img 文件同步不过去的原因,都是因为没有加flash刷新 <CMD state="Updater" type=&quo ...
- 恩智浦 飞思卡尔Freescale Kinetis KEA128学习笔记4——ADC
KEA128的ADC有8个寄存器 ADC编程基本步骤: 1.打开ADC模块时钟 2.开启ADC_APCTL1引脚控制寄存器相应引脚的AD功能(即关闭这些引脚的IO功能) 3.配置ADC_SC3寄存器的 ...
最新文章
- C语言N台服务器通信,使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序 ....
- 面试问烂的 MySQL 四种隔离级别,看完吊打面试官!
- Cognos8.3权限体系[转]
- 【机器学习基础】朴素贝叶斯的算法实现
- 下载mysql镜像教程_docker下安装mysql镜像
- 在php里面怎么做日期范围,如何在php中获得上周的日期范围?
- lua实现多继承-方式2
- 解决:The ‘Access-Control-Allow-Origin‘ header contains multiple values‘x, *‘, but only one is allowed.
- 怎样清除手机中的html文件夹,怎么彻底清除手机APP卸载后的残留文件夹 能删与不能删文件名...
- linux查看当前igb的版本信息,Linux下查看网卡驱动和版本信息
- 工具箱锁打不开了怎么办_木门门锁坏了怎么办?维修小技巧在手不发愁
- C# Unity依赖注入
- 深度学习自学(二十八):Altas人脸SDK实现之-回调函数
- ARKit何以从同类技术中胜出?
- 冒泡排序(C语言代码介绍)
- 硬盘的IDE、AHCI和NVMe模式区别
- Python编程-让繁琐的工作自动化(十一)从Web爬取信息
- 『递推』[AGC043D] Merge Triplets
- JAVAEE 实训日志 一
- 将 MobaXterm 的高亮/突出显示集功能(HighLight sets)移植到 Xshell 中使用