ubuntu16.04 搭建QT5.12.10交叉编译环境
系统环境:ubuntu 16.04
QT版本:5.12.10
交叉编译工具链:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu(生成目标文件为64位)
有问题可以加我的QQ:1239258507,微信同QQ
下载qt-everywhere-src-5.12.10.tar.xz
链接: https://download.qt.io/archive/qt/5.12/5.12.10/single/
解压qt源码
tar -xvJf qt-everywhere-src-5.12.10.tar.xz
cd qt-everywhere-src-5.12.10
复制修改配置文件
复制一个原有的配置文件目录生成新的配置文件目录,目录命名自定义(可根据编译器命名)
cp -a qtbase/mkspecs/linux-arm-gnueabi-g++/ qtbase/mkspecs/aarch64-linux-gnu-g++/
修改配置文件目录
vi qtbase/mkspecs/aarch64-linux-gnu-g++/qmake.conf
将等号右边改为你自已的交叉编译工具链,如果没有将交叉编译工具链配置到环境变量中,可以写绝对路径
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /usr/local/arm-aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
QMAKE_CXX = /usr/local/arm-aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK = /usr/local/arm-aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB = /usr/local/arm-aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
# modifications to linux.conf
QMAKE_AR = /usr/local/arm-aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY = /usr/local/arm-aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy
QMAKE_NM = /usr/local/arm-aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc-nm -P
QMAKE_STRIP = /usr/local/arm-aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip
load(qt_config)
配置qt
可用命令./configure -help 查看源码配置的帮助信息,根据需求配置参数;
编辑一个自动配置的脚本文件(如 config.sh)存放在源码顶层目录下,并添加可执行权限,脚本内容如下
#!/bin/bash
./configure -release \
-opensource \ //构建Qt的开源版本
-confirm-license \ //自动许可
-extprefix /opt/aarch64_qt5.12.0 \ 设置安装路径 会自行创建
-xplatform aarch64-linux-gnu-g++ \ 上面配置好的的配置文件目录
-no-sse2 \
-no-sse3 \
-no-sse4.1 \
-no-sse4.2 \
-no-avx \
-no-avx2 \
-no-mips_dsp \
-no-mips_dspr2 \
-no-pkg-config \
-no-glib \
-nomake examples \
-nomake tools \
-nomake tests \
-no-cups \
-no-iconv \
-no-dbus \
-no-opengl \
-no-xcb
exit
编译
make -j4
make install
将生成的目录(aarch64_qt5.12.0)复制到开发板 ,然后配置如下环境变量
export QTDIR= aarch64_qt5.12.0目录在开发板所在路径
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
测试
在ubuntu用生成目录(aarch64_qt5.12.0/bin)下的qmake 编译程序测试
将生成目标程序复制到开发板 执行