| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> Qt5.12.11交叉编译+64位ARM_aarch64+全志H5 CortexA53 -> 正文阅读 |
|
[C++知识库]Qt5.12.11交叉编译+64位ARM_aarch64+全志H5 CortexA53 |
1、准备工作? ? ?购买的H5开发板,附带资料里面只有关于qt4.8的支持,Qt5新增了很多插件,为了在H5上运行Qt5的程序,需要交叉编译Qt5版本的源码,记录下编译Qt5.12.11版本的源码交叉编译。 硬件:NanoPi K1 Plus,采用H5芯片,ARMv8架构,aarch64指令集。 Qt版本5.12.11:下载地址,https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.12/5.12.11/single/qt-everywhere-src-5.12.11.tar.xz 虚拟机:Ubuntu20.04LTS 桌面版。 交叉编译器:https://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/aarch64-linux-gnu/ 我编译了Qt5.12.9和Qt5.12.11两个版本的源码,方法一样,最后都能运行在开发板上。 2、安装交叉编译工具? ? 将交叉编译工具压缩包gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar拷贝到虚拟机目录下,我使用的是Xftp这个工具。然后使用tar命令解压缩,然后添加到环境变量中,添加到/etc/profile目录下,使用source? /etc/profile命令,使环境变量生效,然后使用aarch64-linux-gnu-gcc -v命令查看工具是否安装成功,也可以将环境变量添加到当前用户的家目录的的.bashrc目录下。 在/etc/profile文件的最后添加交叉编译工具安装路径,使用source /etc/profile命令生效环境变量。 3、修改qmake.conf文件? ? ? 将第一步下载的Qt源码移动到虚拟机中自己新建的文件夹中,我新建的Qt源码存放路径为/opt/qt5.12.11。不同的硬件架构对应不同的qmake.conf,在下载的Qt5.12.11源码中的qtbase/mkspecs/目录下有各种不同的平台,H5使用的是linux-aarch64-gun-g++目录下的qmake配置文件,我们先拷贝一个这个文件的备份,在备份文件中修改qmake.conf。将linux-aarch64-gun-g++这个目录拷贝到与这个文件同一目录下的aarch64目录,如下图所示。
上图为Qt源码文件夹中qtbase/mkspecs/aarch64/qmake.conf文件内容。为了避免修改错误aarch64为拷贝的qtbase/mkspecs/aarch64/linux-aarch64-gun-g++文件。 4、配置编译选项在解压的Qt5.12.11源码目录下使用./configure -help命令,可以查看编译配置选项。一般将需要编译的内容添加到一个shell脚本中,在源码的顶层目录下新增autoconfigure.sh这个文件的名称可以随便定义。下面为文件的内容。
在autoconfigure.sh中添加上面的内容后,给文件使用chmod 777 autoconfigure.sh给文件添加执行的权限,然后运行./autoconfigure,生成makefile文件。 如果配置编译选项没有错误,运行了autoconfigure.sh文件后没有错误就会出现类似上图的显示,如果没有出现,可能是autoconfigure.sh文件错误,我当时也是拷贝的别人的文件,结果很多不能被识别的字符,格式需要注意。 5、make运行了.autocinfigure.sh文件后,就可以执行make命令了。根据机器的配置不同,不同的机器make的时间不同。我使用time (make -j16)命令执行make,time可以测试make所消耗的时间。 6、make installmake完成后就可以执行make install命令了,make install命令执行完之后就能在我们新建的arm-qt目录下面生成在可以再我们目标开发板上运行的qt环境了,将这个arm-qt文件,全部拷贝到目标开发板上,然后添加qt5运行的环境就能运行qt5的程序了。 上图中显示的目录就是我们最后编译出来的文件,将这个文件夹拷贝到开发板中,我使用的是nfs方式拷贝到开发板的。 7、开发板中运行上图是通过串口与开发板通信,显示的目录为之前编译出来的arm-qt目录。在开发板的/etc/profile文件的最后添加Qt运行的环境变量。
我的开发板没有触摸的显示屏,我使用的是HDMI接口连接的显示器,现在我们可以运行编译出来的目录下面的examples下面的文件,现在运行下图目录下的文件。 上图就是运行/arm-qt/examples/widgets/animation/animatedtiles目录下的animatedtiles可执行文件。上图 上图是运行arm-qt/examples/charts/areachart目录下的areachart可执行文件后的效果。 开发板的Qt5环境就搭建好了,就可以在Ubuntu下面使用QtCreator编写Qt程序,然后使用我们编译出来的qmke及交叉编译工具编译开发板上能运行的程序了,下一天记录下载Ubuntu20.4下面编写一个简单的程序,然后运行在开发板上的例子。下面是我的开发板。 如果有问题欢迎大家一起讨论,谢谢大家的支持。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 12:12:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |