当前位置: 代码网 > it编程>编程语言>C/C++ > 基于ARM的通用的Qt移植思路

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

2024年08月01日 C/C++ 我要评论
基于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)

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com