ubuntu交叉编译arm版本Qt
一、更新、安装基础依赖
sudo apt update && \
sudo apt upgrade -y && \
sudo apt install -y build-essential python
二、准备文件
1.新建目录
mkdir qt
2.下载文件
(1)gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar
网址
https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/
点击"gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz"下载
配置
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar && \
sudo cp -fr gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu /opt/ && \
str='export PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:"$"PATH' && \
sudo sh -c "echo $str >> /etc/profile" && \
source /etc/profile
重启后打开终端输入"aa",连续按两次"Tab"键,出现如下表示成功:
aa-enabled aarch64-linux-gnu-cpp aarch64-linux-gnu-gcc-nm aarch64-linux-gnu-gfortran aarch64-linux-gnu-objdump aa-status
aa-exec aarch64-linux-gnu-dwp aarch64-linux-gnu-gcc-ranlib aarch64-linux-gnu-gprof aarch64-linux-gnu-ranlib aa-teardown
aarch64-linux-gnu-addr2line aarch64-linux-gnu-elfedit aarch64-linux-gnu-gcov aarch64-linux-gnu-ld aarch64-linux-gnu-readelf
aarch64-linux-gnu-ar aarch64-linux-gnu-g++ aarch64-linux-gnu-gcov-dump aarch64-linux-gnu-ld.bfd aarch64-linux-gnu-size
aarch64-linux-gnu-as aarch64-linux-gnu-gcc aarch64-linux-gnu-gcov-tool aarch64-linux-gnu-ld.gold aarch64-linux-gnu-strings
aarch64-linux-gnu-c++ aarch64-linux-gnu-gcc-7.5.0 aarch64-linux-gnu-gdb aarch64-linux-gnu-nm aarch64-linux-gnu-strip
aarch64-linux-gnu-c++filt aarch64-linux-gnu-gcc-ar aarch64-linux-gnu-gdb-add-index aarch64-linux-gnu-objcopy aa-remove-unknown
(2)qt-everywhere-src-5.12.9.tar.xz
网址
https://download.qt.io/archive/qt/5.12/5.12.9/single/
点击" qt-everywhere-src-5.12.9.tar.xz"下载
下载后解压"qt-everywhere-src-5.12.9.tar.xz"文件
三、安装依赖
1.终端apt依赖
sudo apt install -y gperf \
bison \
flex \
llvm \
libxcb* \
libxslt1-dev \
ruby \
libssl-dev \
libcap-dev \
libxtst-dev \
libpci-dev \
libnss3-dev \
libclang-6.0-dev
2.修改一些配置文件
修改以下文件
gedit qt-everywhere-src-5.12.9/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf
增加以下内容(在QMAKE_INCREMENTAL_STYLE = sublib与include(…/common/linux.conf)之间)
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts
在文件中的"aarch64-linux-gnu"加上具体路径,最后文件
#
# qmake configuration for building with aarch64-linux-gnu-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
QMAKE_CXX = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
# modifications to linux.conf
QMAKE_AR = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy
QMAKE_NM = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P
QMAKE_STRIP = /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip
load(qt_config)
将文件夹移动至/opt
sudo cp -fr qt-everywhere-src-5.12.9 /opt/
四、configure
cd /opt/qt-everywhere-src-5.12.9
sudo ./configure \
-prefix /opt/Qt5.12.9-arm \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-separate-debug-info
五、编译安装
1.编译
sudo make -j $(nproc)
2.安装
sudo make install
六、配置Qt环境
打开Qt
依次点击“工具”,“选项”,“Kits”
需要配置:“编译器”、“Qt Versions”、“Kits”
1.“编译器”:
点击“添加”,“GCC”,“C”
名称填写:“AArch64GCC”
编译器路径选择:“/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc”
点击“Apply”
再点击“添加”,“GCC”,“C++”
名称填写:“AArch64G++”
编译器路径选择:“/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++”
点击“Apply”
2.“Qt Versions”
点击“添加”
选择:“/opt/Qt5.12.9-arm/bin/qmake”
点击“Apply”
3.“Kits”
点击“Add”
名称填写:“AArch64 Qt 5.12.9”
Compiler中“C”与“C++”选择上边对应的“AArch64GCC”与“AArch64G++”
Qt Version选择上边对应的“Qt 5.12.9(Qt5.12.9-arm)”
点击“Apply”
最后点击“OK”
ubuntu交叉编译arm版本Qt-完毕