ubuntu16.04 搭建QT5.12.10交叉编译环境

ubuntu16.04 搭建QT5.12.10交叉编译环境

  • 下载qt-everywhere-src-5.12.10.tar.xz
    • 解压qt源码
    • 复制修改配置文件
      • 配置qt
      • 编译
      • 将生成的目录(aarch64_qt5.12.0)复制到开发板 ,然后配置如下环境变量
      • 测试

系统环境: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 编译程序测试
在这里插入图片描述

将生成目标程序复制到开发板 执行
ubuntu16.04 搭建QT5.12.10交叉编译环境_第1张图片

你可能感兴趣的:(ubuntu16.04,linux,qt,交叉编译,arm)