x86架构ubuntu 搭建arm64交叉编译环境及QT编译arm64架构工程

背景:由于最近项目需要做国产系统适配,很多软件需要重新编译以适配不同架构CPU。

环境:

1、主机win10 64bit   vmware虚拟主机ubuntu1804 64bit

2、vmware虚拟主机已经安装了qt5.14.2及qt_create4.11.1

一、C/C++程序交叉编译

1、交叉编译环境搭建

①选定编译工具aarch64-linux-gnu

②安装交叉编译工具

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

安装后验证下是否ok,直接输aarch64-  加Tab键如果能自动补全aarch64-linux-gnu-gcc那就问题不大,查看版本信息:aarch64-linux-gnu-gcc -v,能查到如下图所示,说明安装完成。

aarch64-linux-gnu-gcc -v

 2、编译源码

例如需要将test.c源码编译成arm64可执行文件,指令如下:

aarch64-linux-gnu-gcc -o test test.c

编译通过后通过file指令查看文件类型是否是ELF:64bit LSB shared object,ARM aarch64...如果是,则完成源码编译。

3、QT搭建arm64编译环境

①下载qt-everywhere-src-5.14.2.tar.xz,并通过xz命令解压出qt-everywhere-src-5.14.2.tar文件,再通过tar命令解压qt-everywhere-src-5.14.2.tar文件,得到文件夹:qt-everywhere-src-5.14.2

xz -d qt-everywhere-src-5.14.2.tar.xz

tar -xvf qt-everywhere-src-5.14.2.tar

查看qt-everywhere-src-5.14.2/qtbase/mkspecs里linux-aarch64-gnu-g++/qmake.conf配置文件内容里的编译器是否是aarch64-linux-gnu-  如果不是需要修改成对应的交叉编译工具名,如下所示:

 ②进入源码根目录:cd qt-everywhere-src-5.14.2

./configure -prefix /opt/Qt5.14.2/5.14.2/aarch64 -make libs -xplatform linux-aarch64-gnu-g++ -no-opengl -skip qtdeclarative

说明:

- no-opengl是因为之前已经安装过qt的界面版本

-skip qtdeclarative是编译有问题暂时略过

③编译make -j16 2>&1 | tee build.log,注意在编译的时候会输入些lisence选择,选择开源就行。

④安装

因为配置的时候指定的路径是/opt/Qt5.14.2/5.14.2/aarch64,所以需要先创建aarch64文件夹,然后再安装。安装完成后在/opt/Qt5.14.2/5.14.2/aarch64路径下会产生对应的文件夹。

sudo mkdir -p /opt/Qt5.14.2/5.14.2/aarch64

sudo make install

⑤QT配置选项修改

Compliers安装完交叉编译工具,系统能自动找到,如果找不到需要自己通过Add按钮添加

Qt Versions需要添加一个自定义的版本,qmake需要刚编译安装后的qmake

Kits需要选择好自己新添加的Qt Version

 ⑥工程建立及编译

以上准备工作就绪就可以打开或者创建新的QT项目。构建和运行选aarch64构建项目,编译即可获得arm64所需要的QT应用程序,提供导arm64主机,运行测试。

猜你喜欢

转载自blog.csdn.net/weixin_30072103/article/details/131643696