嵌入式QT移植到linux开发
- 一、软件包、环境说明
- 1.1 软件包
- 1.1.1 通用交叉编译工具链
- 1.1.2 qt源码
- 1.1.3 tslib(触摸屏校准插件)
- 1.1.4 fonts字体库(qt支持中文)
- 1.1 环境说明
- 二、环境搭建
- 2.1 ubuntu下安装通用的交叉编译器
- 2.2 ubuntu下编译Qt源码
- 2.2.1 编译这个有什么用呢?
- 2.2.2 拷贝qt源码到ubuntu
- 2.2.3 修改qmake.conf文件
- 2.2.3 修改配置编译选项
- 2.2.4 编译qt源码
- 2.3 ubuntu下编译tslib库
- 2.3.1 拷贝解压tslib到Ubuntu
- 2.3.2 配置tslib
- 2.4 配置ARM架构下Qt Creator环境
- 2.4.1 qt creator环境配置
- 2.4.2 编译测试qt程序
- 2.5 移植qt到开发板文件系统
- 2.5.1 拷贝库文件到开发板文件系统
- 2.5.2 修改开发板/etc/profile,添加环境变量
- 三、测试
- 将SD插入开发板中,设置开发板从SD启动。

讯享网 进入/temp目录里面,执行test_demo cd /temp/ https://blog.51cto.com/u_/test_demo & /&是后台运行/
可以看到中文显示和触摸点击都ok!大功告成。 还有一点: 你编译qt编码的交叉编译器必须和编译qt测试程序的编译器一致,不然可能会有问题。
1.1.1 通用交叉编译工具链
gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
1.1.2 qt源码
qt-everywhere-src-5.12.9.tar.xz
下载地址:https://download.qt.io/archive/qt/5.12⁄5.12.9/single/
1.1.3 tslib(触摸屏校准插件)
tslib-1.21.tar.bz2
下载git地址:https://github.com/libts/tslib
1.1.4 fonts字体库(qt支持中文)
DroidSansFallback.ttf
1、Ubuntu版本:16.04
2、Qt应用程序版本:Q5.14.2
3、开发板:正点原子阿尔法开发板(I.MX6ULL)
4、触摸屏:正点原子RGB触摸屏4.3寸、800*480


sudo vim /etc/profile

source /etc/profile
arm-linux-gnueabihf-gcc -v (tab键可补全)

2.2.1 编译这个有什么用呢?
2.2.2 拷贝qt源码到ubuntu

2.2.3 修改qmake.conf文件

编辑 qtbase/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf文件


修改之后保存。
2.2.3 修改配置编译选项
在qt源码目录下有一个configure的脚本,使用对qt源码进行配置的。可以根据自己的需求裁剪一些不必要的功能,编译之后lib库文件大小当然也会相应的缩小。
终端输入 https://blog.51cto.com/u_/configure -help 可以查看配置选项
这里搞在弄一个shell脚本,进行配置qt源码:
终端输入 vim autoconfigure.sh
输入下面指令:
这个是我使用的配置文件,测试是没有问题的。直接复制的话注意每一行的那个(换行符)后面不要留空格,留空格的话执行会报找不到命令错误。
chmod +777 autoconfigure.sh
https://blog.51cto.com/u_/autoconfigure.sh


2.2.4 编译qt源码
接上面,配置后面提示、输入make、现在就编译源码。
输入make install,装载编译后源码到执行目录。

终端输入make、开始编译qt源码



源码编译完成后,在终端输入make install,将生成的lib库文件拷贝到指定的目录里面,我这指定的是qt源码目录下arm-qt文件夹里面。

2.3.1 拷贝解压tslib到Ubuntu
sudo apt-get update
sudo apt-get install autoconf automake libtool


2.3.2 配置tslib
进入tslib文件夹里面,看到有一个configure的文件,和qt源码根目录里面的一样,也是一个配置脚本。我们需要执行这个脚本来指定使用交叉工具链和编译后生成文件的存放路径。
执行下列命令:
mkdir arm-tslib

终端输入make回车,开始编译tslib。

如果之前你已经编译过,那make之前需要执行make clean命令,把之前make编译的文件删除掉,不执行好像也可以,个人感觉最好清一下。
等待make完成之后,执行sudo make install指令(不加sudo好像不行,没权限)。


make clean
make
sudo make install


file bin/ts_calibrate

2.4.1 qt creator环境配置






http://www.openedv.com
2.4.2 编译测试qt程序




注意:选择arm架构的开发套件生成的可执行文件是无法直接运行的,因为你的机器(电脑)是x86架构。

ls
file test_demo

至此,Qt测试应用程序就做好了。
2.5.1 拷贝库文件到开发板文件系统
sudo cp -rvf arm-qt /media/wx/rootfs/usr/lib/







2.5.2 修改开发板/etc/profile,添加环境变量

上面是我profile里面的内容,简单说一吧,其实我也刚接触不是了解太多,不正确的地址请指正哈。
export TSLIB_ROOT=/usr/lib/arm-tslib //tslib的放的位置
export TSLIB_TSDEVICE=/dev/input/event1 //触摸屏的设备文件
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf //tslib库的配置文件
export QT_ROOT=/usr/lib/arm-qt //qt源码库的位置
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1 //qt程序触摸对应的设备文件,我就是因为没有加这个导致qt程序运行起来后,无法触摸点击,鼠标是可以动
export QT_QPA_FONTDIR=/etc/fonts/ //字体库的位置、其他位置应该也可以
好了,到这里差不多了。
最后,我也是参考【正点原子】I.MX6U 移植Qt5.12.9 V1.1.pdf手册一步一步移植,刚开始移植也有各种各样的问题,多百度什么的就好了,由生到熟有个过程,故记录下来,后面学习回顾,希望也可以帮助到大家!

可以看到中文显示和触摸点击都ok!大功告成。 还有一点: 你编译qt编码的交叉编译器必须和编译qt测试程序的编译器一致,不然可能会有问题。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/163798.html