电脑环境:Ubuntu16.04
目的: 能在ubuntu系统的电脑上编写可在ARM板上可运行的程序。
注:ARM板子上同样需要QT环境

1.安装桌面版QTCreator + QT

在线安装 qt-unified-linux-x64-3.2.3-online.run
安装过程需要输入账号密码,没有需要注册。
在这里插入图片描述

选择安装的QT版本,和需要安装的包。 如果不做 android ,web或者 Qml quick相关的开发可以去掉。

或者单独下载某个版本进行安装
5.14.2

在这里插入图片描述

2.配置ARM交叉编译环境

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

Toolchain 下载
gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
在这里插入图片描述在这里插入图片描述
将gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz copy到 /opt 目录下并解压,

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

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

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

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

sudo gedit /etc/profile

结尾添加 export PATH="/opt/gcc-aarch64-linux-gnu/bin:$PATH"
在这里插入图片描述
保存退出后执行下面命令,使环境变量生效。

source /etc/profile

然后在执行前面提到的aarch64-linux-gnu-gcc -v 进行验证。

3.编译Arm版本的QT库

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

先下载QT源码,everywhere 这种,不巧今天刚更新5.15.1版本,但是还以5.15.0为例。
ubuntu上一定要下载这个tar.xz包,不要下那个zip包。不然有转码问题,会很麻烦。

  • 下载5.15.0.tar.xz,然后将压缩包解压。
    在这里插入图片描述
    在这里插入图片描述

    tar -zxvf qt-everywhere-opensource-src-5.15.0.tar.xz

  • 修改qmake.conf
    在qt-everywhere-src-5.15.0目录中执行如下命令 ,

    gedit qtbase/mkspecs/linux-aarch64-gnu-g++/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
    

在这里插入图片描述

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

    mkdir qt5.15.0
    cd qt5.15.0
    pwd

    在这里插入图片描述
    这个路径下面会用到。

  • 添加脚本文件 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.15.0 \
     -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

    脚本中的 -prefix /home/zw/QT/qt5.15.0 \  就是上面创建的编译生成路径。
           -skip qtlocation \  是因为编译过程中location部分出现了错误。
           -xplatform linux-aarch64-gnu-g++ \  就是指定编译的为ARM版本。
    
  • 最后运行auto.sh , make , make install

    ./auto.sh

    make

    make install

如果出现下面错误:安装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

最终会编译生成到之前创建的qt5.15.0 文件夹下。

4.配置QtCreator 构建套件

在这里插入图片描述

一般的系统能自动检测出来。
如果自动检测不到需要手动添加:

  1. 添加Qt Versions ,点击添加,选择qt5.15.0 下bin目录中的qmake
  2. 添加 编辑器,点C ,添加 ,选择步骤2中设定交叉编译环境:
/opt/gcc-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc

在这里插入图片描述

  1. 点C ++,添加 ,选择步骤2中设定交叉编译环境:
/opt/gcc-aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

在这里插入图片描述

  1. 构建套件
    新建构建套件 编辑器和Qt版本 设置上面1,2,3中添加的版本。如下图:
    在这里插入图片描述最终就可以为项目添加Arm的构建环境 。
    在这里插入图片描述
    编译出来的文件使用file命令查看,显示为,可在ARM平台的可运行程序。
    在这里插入图片描述
    本文只是重构了新版QT搭建理流程和编译遇到的问题,文章大体出于此处连接。
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐