当前位置: 首页 > news >正文

基于ARM的通用的Qt移植思路

文章目录

  • 实验环境介绍
  • 一、确认Qt版本
  • 二、确认交叉编译工具链
  • 三、配置Qt
    • 3.1、修改qmake.conf
    • 3.2、创建autoConfig.sh配置文件
  • 四、编译安装Qt
  • 五、移植Qt安装目录
  • 六、配置Qt creator
    • 6.1、配置qmake
    • 6.2、配置GCC编译器
    • 6.3、配置G++编译器
    • 6.4、配置编译器套件
    • 6.5、创建应用
  • 七、总结

实验环境介绍

硬件:韦东山T113工业开发板
软件:Tina5.0 SDK

一、确认Qt版本

无论在什么平台,第一件事先确认Qt版本,用哪个就下载哪个。比如项目需要使用Qt5.15.9,那么就下载Qt5.15.9的源码:
image.png
解压源码:

tar -xvf qt-everywhere-opensource-src-5.15.9.tar.xz

二、确认交叉编译工具链

交叉编译工具链的确认需要参考目标平台的架构和Qt的版本。比如,我的Qt程序是要放到arm开发板上运行,那就选择arm交叉编译工具链。然而,Qt5.15.9对gcc版本的要求是要大于5,那么所选的arm交叉编译工具链的gcc版本就要高于5。
所以此例中,我所使用的arm交叉编译工具链为gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi,该工具链的gcc版本为7.2.1
image.png
交叉编译工具链下载好后,设置环境变量:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
export PATH=$PATH:/t113/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin/

三、配置Qt

3.1、修改qmake.conf

进入mkspecs目录:

cd qt-everywhere-src-5.15.9/qtbase/mkspecs

image.png
该目录包含了一系列与平台编译器设置相关的文件夹,我的目标平台是arm架构,那么就修改linux-arm-gnueabi-g++目录下的qmake.conf:

vi linux-arm-gnueabi-g++/qmake.conf

这里将工具链前缀修改成我们所要用的工具链前缀:
image.png

3.2、创建autoConfig.sh配置文件

进入Qt源码根目录,创建配置文件autoConfig.sh:

cd qt-everywhere-src-5.15.9
vi autoConfig.sh

autoConfig.sh内容如下:

./configure \
-xplatform linux-arm-gnueabi-g++ \
-prefix /opt/qt/qtresource/qt5.15.9 \
-release \
-opensource \
-skip qtwayland \
-skip qtlocation \
-skip qtscript \
-make libs \
-optimized-qmake \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info \
-pch \
-shared \
-qt-libjpeg \
-qt-zlib \
-qt-libpng

-xplatform linux-arm-gnueabi-g++指定了目标平台和工具链。-prefix指定安装目录。其它的都是一些关于Qt的配置选项。
最后执行配置文件进行配置:

./autoConfig.sh

四、编译安装Qt

配置完成后,开始编译:

make -j8

编译成功后,开始安装:

make install

安装路径即为上面所指定的/opt/qt/qtresource/qt5.15.9

五、移植Qt安装目录

本文主要讲述通用的Qt移植,以便以后在不同平台移植Qt。
1、在任意位置创建一个文件夹,这里命名为:Qt-5.15.9,该文件夹将放置所有关于应用程序的支持,如动态库、插件、字体等。

mkdir Qt-5.15.9

2、将安装目录下的bin、lib、plugins目录复制到Qt-5.15.9:

cp -r /opt/qt/qtresource/qt5.15.9/bin Qt-5.15.9
cp -r /opt/qt/qtresource/qt5.15.9/lib Qt-5.15.9
cp -r /opt/qt/qtresource/qt5.15.9/plugins Qt-5.15.9

3、如果项目中有特殊的字体文件,也一并复制到该文件夹:

cp -r fonts Qt-5.15.9

4、想办法将Qt-5.15.9文件夹弄到开发板,可以直接复制,或通过rootfs overlay的方式。位置随意,我放到了/usr/local/目录:
image.png
5、编写用于设置Qt环境变量的开机自启脚本,内容可参考如下:

#!/bin/shexport QTDIR=/usr/local/Qt-5.15.9
export QT_ROOT=$QTDIRexport PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$QT_ROOT/pluginsexport QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/fontsexport QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event5

六、配置Qt creator

6.1、配置qmake

image.png

6.2、配置GCC编译器

image.png

6.3、配置G++编译器

步骤同上。

6.4、配置编译器套件

image.png

6.5、创建应用

至此,配置结束。可以自行创建应用程序,编译应用,传到开发板进行验证。

七、总结

至此,Qt移植结束。
参考文章:自动驾驶开发入门(一)—交叉编译64位Qt5.15 (aarch64)

http://www.lryc.cn/news/388234.html

相关文章:

  • IT专业入门,高考假期预习指南
  • 芯片详解——AD7606C
  • IDEA 编译单个Java文件
  • 人工智能业务分析
  • 随机文本生成器
  • java中输入输出流的继承关系
  • c++应用网络编程之一基本介绍
  • Web后端开发概述环境搭建项目创建servlet生命周期
  • Java 位运算详解
  • 智能体实战:开发一个集成国内AI平台的GPTs,自媒体高效智能助手
  • 完美世界|单机版合集(共22个版本)
  • Jenkins的一些记录
  • 讲讲js中的prototype和__proto__
  • JavaScript的学习之DOM的查询(一)
  • 充电宝哪个品牌比较好一点?多维度实测西圣、绿联、倍思充电宝!
  • ubuntu安装QT
  • DataGrip 2024 po for Mac 数据库管理工具解
  • 《C++ Primer》导学系列:第 13 章 - 拷贝控制
  • c++ 图论2 深度优先算法和广度优先算法
  • 【Qt】初识QtQt Creator
  • Android 11.0 修改系统显示大小导航栏消失
  • RocketMQ源码学习笔记:Producer启动流程
  • Node.js 和浏览器环境中都使用 WebSocket
  • css美化滚动条样式
  • 由浅入深,走进深度学习(补充篇:转置卷积和FCN)
  • Linux基础篇——目录结构
  • 星际编码:Swifter.Json,.NET宇宙中的数据处理新星
  • python 压缩数据
  • nacos在k8s上的集群安装实践
  • 数据结构—判断题