QT移植到海思芯片或者其他嵌入式开发板过程

最近在公司实习,上级安排了个移植Qt到开发板的任务给我,对于我来说这也是完全没有接触过的东西了,比较懵逼,一开始在网上也找了很多方法,但是总是有各种各样的奇怪问题又很难解决,通过一段时间的摸索也大概熟悉了流程,成功移植,编译出了qt的代码库。小编也是新手,这里旨在做一个记录,方便以后需要用到回来看看,如有错误的请各位小伙伴指出,谢谢啦!

一、开发环境

操作平台:V Scode

编译器:aarch64-linux-gnu  version7.5.0

Qt版本:qt-everywhere-opensource-src-5.9.6.tar.xz

下载路径:https://download.qt.io/archive/qt/

打不开网址,找不到也没关系,小编给大家准备好了,需要自取!

链接:https://pan.baidu.com/s/1VSKF7XbLhZ9yuPpFDhEIBA

提取码:hbib

注意:小编后期不使用qtcreator去编译的,使用的是纯代码qmake,所以没有使用qt的.run文件程序,虽然qtcreator比较简单,但是到复杂的项目里,还得是纯代码的实现比较好,这是实习公司的主管说的,是不是真的咱也不太清楚,干活就完事了哈哈哈!那么对于qtcreator的使用大家可以另外找一下,这不影响本文的qt移植,话不多说,这就开始吧!

1、下载qt-everywhere-opensource-src-5.9.6.tar.xz 源码包将其放在/home/xjchen/fullhan/mc6670_sdk/QTtest目录下

 

二、解压

2.将qt-everywhere-opensource-src-5.9.6.tar.xz进行解压

指令:  tar -xvf qt-everywhere-opensource-src-5.9.5.tar.xz -C ./

三、相应的修改与qtconfigure配置

3.配置编译脚本

进入qt-everywhere-opensource-src-5.9.6文件夹添加set.sh脚本,内容如下

#!/bin/sh

./configure -prefix /usr/local/qt5.9 \

    -opensource \

    -debug \

    -confirm-license \

    -xplatform linux-arm-gnueabi-g++ \

    -no-opengl \

    -no-pch \

    -shared \

    -no-iconv \

    -no-xcb \

脚本说明
-prefix /usr/local/qt5.9 \ 是安装路径  

 -opensource: 编译Qt的开源版本

-debug:编译Qt的debug版本,开启调试

-confirm-license:自动确认许可

-xplatform <target>:选择交叉编译时的目标 mkspec,[PLATFORM]

-no-opengl:禁止对 OpenGL 的支持。

-shared:构建Qt共享库

-no-iconv:禁用对iconv(3)的支持

-no-xcb:禁止用 X11 的支持,选择使用 xcb-* 库

给脚本权限:chmod +x set.sh

4.配置qmake.conf

特别说明

arm-linux-gnueabihf-gcc 这是自己的交叉编译工具链

arm-linux-gnueabihf-gcc -lts 加上后面的 -lis 是支持tslib触摸屏的,我们这里不使用

在当前目录:vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

打开qmake.conf更改配置:

本地原程序:

更改后的:

将所有的把所有的arm-linux-gnueabi**改为aarch64-linux-gnu**(aarch64-linux-gnu是自己的编译器,具体看自己装的是什么编译器)

 

5.执行配置QT脚本:

等待一会后,开始执行配置,如图所示说明你已经配置成功了,接下来按提示操作

6.编译安装

特别说明:make 编译 的时间会有有点长,耐心等待即可。

终端输入:make -j4等待编译即可:

等待20分钟左右Make -j4编译完后

四、移植到ARM开发板

特别说明:/usr/local/qt5.9 这个路径是之前配置编译脚本选择的安装路径。

把/usr/local/qt5.9里面lib plugins 拷贝到ARM开发板的 /home/public/nfsshare/xjchen/lib/

拷贝成功:

五、ARM开发板配置环境

# Qt qwx config

expor tLD_LIBRARY_PATH=/home/public/nfsshare/xjchen/lib/lib //(对应lib库的路径)

QT_QPA_PLATFORM_PLUGIN_PATH=/home/public/nfsshare/xjchen/lib/plugins(plugins路径)

export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0

export QT_DEBUG_PLUGINS=1  (打印调试信息)

六、小结

到这里Qt移植到嵌入式开发板的流程就完成了,主要就是编译出qt的库,因为我们做qt项目的话需要的就是调用这些库来进行图形界面话,在再次移植qt的过程中我也踩了很多坑,花了挺多时间,因为对这些完全没有接触过,很多东西不同的,比较多的时间花在了探索上面了,不过通过自己的探索也有了很深的印象,总感觉每个人都会到很多奇奇怪怪的东西,运气好的话一次两次搞定,运气不好可能搞很多次都不行,像我就是后者了,后面有空我会记录一期自己这次移植QT遇到的常见错误,如果你也有很多错误,不妨去我的主页看看吧,说不定就有了呢哈哈哈哈!同时也会分享一些简单的qt代码编写,因为我是不使用qtcreator去编写的,用纯代码编写,感兴趣的可以去看看哦!  好了,这期就和大家聊这么多啦, 谢谢大家查阅!

参考文章:秋知叶i——【嵌入式】--- 交叉编译 移植 QT 5.9.6 到 ARM开发板 和搭建嵌入式

非常感谢这位博主的文章!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值