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

实验环境介绍

硬件:韦东山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/

需要注意的是,如果使用buildroot系统。编译buildroot和编译Qt要用同一个工具链。

三、配置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、将Qt安装目录下的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/sh

export QTDIR=/usr/local/Qt-5.15.9
export QT_ROOT=$QTDIR

export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$QT_ROOT/plugins

export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/fonts

export 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)

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Arm是一种处理器架构,而Qt是一个跨平台的应用程序开发框架,MySQL是一种关系型数据库管理系统。 在Arm架构上使用Qt进行应用程序开发是可行的。Qt提供了丰富的工具和库,使开发人员能够轻松地创建跨平台的图形界面和功能强大的应用程序。Qt提供了对Arm架构的支持,可以使用Qt Creator等开发工具来开发Arm平台上的应用程序。 在Arm平台上使用MySQL作为数据库也是可行的。MySQL是一种开源的关系型数据库管理系统,具有稳定性和高性能的特点。在Arm架构上运行MySQL数据库需要将其编译、优化和适配到Arm平台上,以确保其在Arm架构上的运行效果和性能。 因此,使用Arm架构、Qt和MySQL可以实现在Arm平台上开发及连接数据库的应用程序。开发人员可以利用Qt的跨平台特性在Arm设备上创建用户友好的图形界面,并使用MySQL数据库存储和管理数据。这样的应用程序可以在各种Arm设备上运行,为用户提供丰富的功能和良好的用户体验。 ### 回答2: arm qt mysql 是一个用于在 ARM 架构上开发应用程序并与 MySQL 数据库进行交互的工具组合。 ARM 是一种基于 RISC(精简指令集计算机)架构的处理器系列,广泛应用于移动设备(如智能手机、平板电脑)和嵌入式系统(如路由器、物联网设备)。 Qt 是一个跨平台的应用程序开发框架,可用于开发图形化界面(GUI)应用程序,并提供了丰富的功能和工具。它允许开发者在多个操作系统上编写一次代码,以实现跨平台的应用程序。 MySQL 是一种开放源代码关系型数据库管理系统(RDBMS),它是一种通用且广泛使用的数据库解决方案,可用于存储、管理和检索数据。 arm qt mysql 的组合可以让开发者在 ARM 架构上使用 Qt 框架开发图形化应用程序,并与 MySQL 数据库进行交互。它提供了用于连接、操作和管理 MySQL 数据库的工具和库。 通过 arm qt mysql,开发者可以轻松地在 ARM 平台上创建功能强大的图形化应用程序,同时可以方便地与 MySQL 数据库进行数据的读取、写入和操作。这可以助力开发者快速开发出高质量的移动设备和嵌入式系统应用,实现数据的存储和管理。 ### 回答3: ARM 是一种处理器架构,它被广泛应用于嵌入式系统、移动设备和低功耗应用中。Qt 是一个跨平台的应用程序开发框架,它允许开发者使用 C++ 编写一次代码,并在不同的操作系统和设备上运行。 在 ARM 上使用 Qt 开发应用程序可以带来很多优势。首先,ARM 是低功耗的处理器架构,适用于移动设备和嵌入式系统,而 Qt 提供了对 ARM 平台的良好支持,可以轻松地开发高效、稳定的应用程序。 其次,使用 Qt 进行 ARM 开发可以实现应用程序的跨平台性。Qt 提供了丰富的功能和类库,使得开发者可以将应用程序开发为可在不同操作系统和设备上运行的可移植代码。这就意味着,开发者可以在 ARM 设备上开发一个应用程序,并轻松地将其移植到其他平台上运行,无需重写大量代码。 此外,MySQL 是一个流行的开源关系型数据库管理系统,Qt 提供了对 MySQL 数据库的良好支持。开发者可以使用 Qt 提供的 MySQL 驱动程序在 ARM 上进行数据库操作,实现数据的存储、读取和处理。 综上所述,ARMQt 和 MySQL 可以很好地结合在一起,用于开发高效、稳定的跨平台应用程序。无论是在移动设备、嵌入式系统还是其他低功耗应用中,使用 ARMQt 和 MySQL 可以带来更好的开发体验和更高的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值