全志T527开发板+qt5.12.5+tslib1.23交叉编译

5 篇文章 0 订阅
3 篇文章 0 订阅

前提

两个环境:虚拟机ubuntu20.0和全志T527开发板
目的:在虚拟机上编译好可执行文件,放在开发板上运行

编译好的qt和tslib也要移植给开发板,运行需要这两个环境

准备好交叉编译环境aarch64-linux-gnu
此步省略。

在这里插入图片描述

1 tslib1.23源码编译

1.1 源码获取

获取地址:源码获取
官网:官网

1.2 编译

# 1.解压
tar xvf tslib-1.23.tar.gz

# 2.进入文件夹
cd tslib-1.23

# 3.编译并安装
./autogen.sh
./configure --host=aarch64-linux-gnu --prefix=$(pwd)/_install --cache-file=aarch64-linux.cache
make
make install
#_install文件夹内就是生成的文件

_install

1.3 开发板配置tslib环境变量

export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_TSDEVICE=/dev/input/event7
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONSOLEDEVICE=none

2 qt5.12.5源码编译

2.1 源码获取

获取地址:源码获取
官网:官网地址 需要科学上网才能获取

2.2 编译

2.2.1 解压

# 1.解压
tar -xvf qt-everywhere-src-5.15.2.tar.xz 

# 2.进入文件夹
cd qt-everywhere-src-5.12.5

2.2.2 修改qmake.conf

#
# qmake configuration for building with aarch64-linux-gnu-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC                = aarch64-linux-gnu-gcc
QMAKE_CXX               = aarch64-linux-gnu-g++
QMAKE_LINK              = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++

# modifications to linux.conf
QMAKE_AR                = aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
QMAKE_NM                = aarch64-linux-gnu-nm -P
QMAKE_STRIP             = aarch64-linux-gnu-strip
load(qt_config)

解释:

  1. QT_QPA_DEFAULT_PLATFORM = linuxfb 中linuxfb视自己情况选择
  2. aarch64-linux-gnu-gcc及后面的值我的环境变量中已经配好了。
  3. 运行下面的命令可以查看aarch64-linux-gnu交叉编译环境是否存在
# 命令
aarch64-linux-gnu-gcc -v

# 显示结果
Using built-in specs.
COLLECT_GCC=aarch64-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/aarch64-linux-gnu/9/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --without-target-system-zlib --enable-libpth-m2 --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu- --includedir=/usr/aarch64-linux-gnu/include
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)

2.2.3 配置编译选项

# 1.编写一个autoconfigure.sh文件
vi autoconfigure.sh

# 2.内容
./configure -prefix /home/ys/yao/qt-everywhere-src-5.12.5/arm-qt -opensource -confirm-license -release -shared -xplatform linux-aarch64-gnu-g++ -make libs -make examples -no-opengl -skip qt3d -skip qtdoc -skip qttools -tslib -I/home/ys/yao/tslib-1.23/_install/include -L/home/ys/yao/tslib-1.23/_install/lib -recheck-all

# 3. 将2中的内容分开来看
./configure -prefix /home/ys/yao/qt-everywhere-src-5.12.5/arm-qt \
-opensource \
-confirm-license \
-release \
-shared \
-xplatform aarch64-linux-gnu-g++ \
-make libs \
-make examples \
-no-opengl \
-skip qt3d \
-skip qtdoc \
-skip qttools \
-tslib \
-I/home/ys/yao/tslib-1.23/_install/include \
-L/home/ys/yao/tslib-1.23/_install/lib \
-recheck-all

解释:

  1. /home/ys/yao/qt-everywhere-src-5.12.5/arm-qt中arm-qt就是输出的文件夹
  2. aarch64-linux-gnu-g++选择交叉编译环境
  3. -tslib链接tslib的库
  4. -I/home/ys/yao/tslib-1.23/_install/include和-L/home/ys/yao/tslib-1.23/_install/lib分别是tslib的头文件路径和库路径
# 其他参数含义
-opensource:构建Qt的开源版本
-release:使用release版本的Qt
-xplatform linux-arm-gnueabi-g++:指定编译器
-skip qt3d:跳过Qt的3d
-make libs:编译要用到的库
-make examples:编译生成Qt的例程代码
-nomake tools:不生成Qt的工具
-no-openssl:不使用openssl

2.2.4 开始编译

./autoconfigure.sh 

make
make install

结果参考:嵌入式Linux-Qt环境搭建
此时,编译结果放在了arm-qt中
在这里插入图片描述

2.2.5 移植qt

打包arm-qt,并将其复制到开发板的/usr/local下

# 配置qt环境变量
vi /etc/profile

# 在最后添加:
export QT_QPA_FB_TSLIB=1    
export QT_QPA_EGLFS_TSLIB=1
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_EGLFS_ROTATION=0
export QT_QPA_EGLFS_INTEGRATION=none
export QT_QPA_GENERIC_PLUGINS="tslib:/dev/input/event7"
# export QT_QPA_FONTDIR=/usr/local/arm_qt/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/arm_qt/plugins
export QML2_IMPORT_PATH=/usr/local/arm_qt/qml/

# 立即生效配置
source /etc/profile

3.运行测试

# 在qt-everywhere-src-5.12.5/arm-qt/examples/widgets/animation/animatedtiles/下有一个可执行文件animatedtiles

# 将文件上传至开发板(此时在虚拟机)
cd /home/ys/yao/qt-everywhere-src-5.12.5/arm-qt/examples/widgets/animation/animatedtiles/
scp animatedtiles root@192.168.0.10:/root

# 在开发板上运行(此时在开发板)
cd /root
./animatedtiles 

运行结果:运行结果

参考文献:

  1. 嵌入式Linux-Qt环境搭建
  2. qt交叉编译+tslib触摸插件交叉编译
  3. tslib移植配置
  4. Qt Embedded之一:简介与平台插件介绍
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世尘陌路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值