Qt 5.15.7 arm交叉编译+tslib-1.22+openssl-3.0.7+alse-1.2.8

ubuntu Qt arm64交叉编译

tslib是一个用于触摸屏设备的开源函数库
ALSA为声卡提供的驱动组件

准备环境

交叉编译器下载地址:https://developer.arm.com/downloads/-/gnu-a
qt源码下载地址:https://download.qt.io/archive/qt/
tslib下载地址:https://github.com/libts/tslib/releases
alse下载地址:https://www.alsa-project.org/wiki/Download
openssl下载地址:https://www.openssl.org/source/openssl-3.0.7.tar.gz

交叉编译器环境配置可以百度
注:qt下载太慢可以上科学,或者找镜像下载

有一个网站里面写了一个教程挺好的(但是我没有用过,只是参考了一下):https://doc.embedfire.com/linux/qt/embed/zh/latest/ebf_qt/install/install_arm.html#id1

编译tslib-1.22

# CC指定gcc编译器
# --prefix指定make install 目录
# --host指定编译平台
export CC=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc

./configure \
CC=$CC \
--prefix=/home/tangtang/qtSource/tslib-1.22/build \
--host=arm-linux \

编译alse-1.2.8

export CC=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
./configure \
CC=$CC \
--prefix=/home/tangtang/qtSource/alsa-lib-1.2.8/build \
--host=arm-linux \
--enable-shared \
--disable-python \
--with-configdir=/home/tangtang/qtSource/alsa-lib-1.2.8/build/config \
--with-plugindir=/home/tangtang/qtSource/alsa-lib-1.2.8/build/plugin

编译openssl

export CC=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
./Configure linux-aarch64 \
--prefix=/home/tangtang/qtSource/openssl-3.0.7/build

编译Qt

1.修改mkspecs中的qmake.conf

根据自己需求确认平台然后进入那个文件夹

mkspecs/linux-aarch64-gnu-g++/qmake.conf

#
# qmake configuration for building with aarch64-linux-gnu-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                = /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
QMAKE_CXX               = /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK              = /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        = /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

# modifications to linux.conf
QMAKE_AR                = /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs 
QMAKE_OBJCOPY           = /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy
QMAKE_NM                = /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P
QMAKE_STRIP             = /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-strip
load(qt_config)

QMAKE_INCDIR=/home/tangtang/qtSource/tslib-1.22/build/include
QMAKE_LIBDIR=/home/tangtang/qtSource/tslib-1.22/build/lib

cd /home/tangtang/qtSource/qt-everywhere-src-5.15.7/qtbase/mkspecs/linux-aarch64-gnu-g++

export CC=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
export CXX=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-g++


./configure \
-release \
-opensource \
-no-opengl \
-nomake tests \
-nomake examples \
-xplatform linux-aarch64-gnu-g++ \
-prefix /home/tangtang/qtSource/qt-everywhere-src-5.15.7/qtbase/build \
-tslib \
-I/home/tangtang/qtSource/tslib-1.22/build/include \
-L/home/tangtang/qtSource/tslib-1.22/build/lib \
-ssl \
-I/home/tangtang/qtSource/openssl-3.0.7/build/include \
-L/home/tangtang/qtSource/openssl-3.0.7/build/lib \
 -recheck-all \
 -sysroot /opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/aarch64-linux-gnu

需要指定sysroot 没有指定tslib引用不上

在没有X11 桌面环境中启动程序

没有x11环境,qt的以另一种渲染方式frameBuffer xfb方式

#
export QTDIR=/userdata/Qt

#指定键盘设备输入
export QWS_KEYBOARD=USB:/dev/input/event0
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#编译libiconv这个库,上一篇文件有介绍
export LD_PRELOAD=$QTDIR/lib/preloadable_libiconv.so

#指定触屏设备输入
#export QT_QPA_GENERIC_PLUGINS=tslib:/dev/event2
#qt编译好的plugins库
#这些文件bearer  generic  imageformats  platforms  platformthemes  sqldrivers
#根据需要复制
#export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/ 

#指定显示设备输出
#size 程序渲染的尺寸
#mmSize 触控尺寸
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=1920x1080:mmSize=1920x1080:offset=0x0:tty=/dev/tty1
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值