Ubuntu搭建 ARM平台QT环境
Ubuntu上 搭建ARM QT 环境
电脑环境: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 构建套件

一般的系统能自动检测出来。
如果自动检测不到需要手动添加:
- 添加Qt Versions ,点击添加,选择qt5.15.0 下bin目录中的
qmake - 添加 编辑器,点C ,添加 ,选择步骤2中设定交叉编译环境:
/opt/gcc-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc

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

- 构建套件
新建构建套件 编辑器和Qt版本 设置上面1,2,3中添加的版本。如下图:
最终就可以为项目添加Arm的构建环境 。

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

本文只是重构了新版QT搭建理流程和编译遇到的问题,文章大体出于此处连接。
更多推荐



所有评论(0)