linux系统下qt ARM交叉环境配置

linux系统下qt ARM交叉环境配置

一.qt和arm编译版本下载地址

1.此地方用的QT版本是5.14.2 直接进入官网下载所有qt版本下载连接
2.此地方用的arm编译环境版本是gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
所有arm编译环境版本下载连接

二.配置ARM交叉编译环境

在此地方就不介绍如何安装QT了,这个按照步骤来就行,就注意一下安装的时候要断网来安装。
重要讲述的是如何配置ARM交叉编译环境,网上有很多,但是总是有许多地方,首先在此地方走了很多的弯路,通过不断摸索终于成功安上。

1.在控制台输入aarch64-linux-gnu-gcc -v

如果出现版本信息说明电脑有交叉编译环境,此步骤可以略过。
如果想编译应用的时候用新版的GCC ,可以直接将下面的压缩包解压后,不必设置环境变量等操作,直接手动指定版本,后面会有具体操作。

2.将gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz copy到 /opt 目录下命令行如下(在此文件下运行终端)

sudo cp gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz /opt

3.解压命令行如下

sudo tar -zxvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

如果解压不行,就换一条指令

sudo tar -xf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz

4.并将其重命名为aarch64-linux-gnu

sudo mv gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
aarch64-linux-gnu

5.然后将/opt/gcc-aarch64-linux-gnu/bin目录添加到环境变量中

sudo gedit /etc/profile

6.结尾添加

export PATH="/opt/gcc-aarch64-linux-gnu/bin:$PATH"

在这里插入图片描述

7.保存退出后执行下面命令,使环境变量生效。

source /etc/profile

8 在这里输入命令行检查版本

然后在执行前面提到的命令行

aarch64-linux-gnu-gcc -v

进行验证。
如果有提示你还没安装的话就根据提示进行安装。

sudo apt-get install aarch64-linux-gnu-gcc

再次输入aarch64-linux-gnu-gcc -v进行验证 就会有版本号

三.编译Arm版本的QT库 (QT-everywhere…)

步骤1中有安装5.14.2 ,但是这个编译出来的应用是不能在ARM板子上执行的,能在我们的Linux桌面系统上运行。为了让我们编写的应用能跑在ARM板上,下面是尤为关键的。

先下载QT源码,everywhere 这种,但是还以5.14.2为例。
ubuntu上一定要下载这个tar.xz包,不要下那个zip包。不然有转码问题,会很麻烦
下载5.14.2qt-everwhere

qteverywhere

1.下载下来后 解压

sudo tar -zxvf qt-everywhere-opensource-src-5.14.2.tar.xz

如果提示解压不了,那么换一条指令解压

sudo tar -xf qt-everywhere-opensource-src-5.14.2.tar.xz

2.修改qmake.conf

在qt-everywhere-src-5.14.2目录中执行如下命令

gedit qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf

或者在这个目录下直接点开qmake.conf
增加qmake.conf内容 :

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2-march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts

加入这三行
然后还要修改一下,如下图
只改动这八行

3.创建编译生成路径,就是最后ARM版QT的路径。

创建一个生成路径,位置可以自己选择

mkdir qt5.15.0

cd qt5.15.0

pwd

位置可以自定义

4添加脚本文件 auto.sh ,并添加如下内容,并修改生成路径

先 进入 qt-everywhere-src-5.15.0 文件夹,然后创建脚本文件。
输入如下命令行

gedit auto.sh

在到里面复制如下代码

#!/bin/sh
 ./configure \
 -recheck-all \
 -release \
 -confirm-license \
 -opensource \
 -prefix /home/zw/QT/qt5.14.2 \      [注释]:  //这里要换成你自己创建的生成路径
 -xplatform linux-aarch64-gnu-g++ \
 -no-opengl \
 -no-sse2 \
 -no-openssl \
 -no-cups \
 -no-glib \
 -no-dbus \
 -no-xcb \
 -no-separate-debug-info \
 -nomake tests \
 -no-compile-examples \
 -nomake examples \
 -confirm-license \
 -skip qtlocation \
 -gif \
 -ico \
 -pch \
 -qt-libjpeg \
 -qt-libpng \
 -qt-sqlite \

保存后记得增加权限 ,执行

chmod 777 auto.sh

如果加不了权限,那么就加上sudo 在来运行。
脚本中的 -prefix /home/zw/QT/qt5.15.0 \ 就是上面创建的编译生成路径。
-skip qtlocation \ 是因为编译过程中location部分出现了错误。
-xplatform linux-aarch64-gnu-g++ \ 就是指定编译的为ARM版本。

5. 最后运行auto.sh , make , make install

运行

./auto.sh

生成

make

生成安装

make install

6如果出现下面错误:安装libxcb-xinerama0库

qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
命令行如下

sudo apt-get install libxcb-xinerama0

4.配置QtCreator 构建套件

在这里插入图片描述
一般的系统能自动检测出来。
如果自动检测不到需要手动添加:

添加Qt Versions ,点击添加,选择qt5.14.2下bin目录中的qmake

1. 添加 编辑器,点C ,添加 ,选择步骤2中设定交叉编译环境:

注意编译路径是你才下的编译环境的gcc如下图

注意名称和路径

2. 点C ++,添加 ,选择步骤2中设定交叉编译环境:

和c一样需要注意
注意名称和路径

3构建套件

新建构建套件 编辑器和Qt版本 设置上面1,2,3中添加的版本。如下图
如上图

4.最终就可以为项目添加Arm的构建环境 。

到这里就可以运行了编译出来的文件使用file命令查看,显示为,可在ARM平台的可运行程序。

在这里插入图片描述
此文是结合了几篇文章修改而来,但是主要还是集中在一篇文章中。本人亲自尝试有效!!!!!!!!!!

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rose_yj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值