随笔 - 1  文章 - 1  评论 - 0  阅读 - 1303 

# 准备工作
1.qt5.12.2下载网址
中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
北京理工大学:http://mirror.bit.edu.cn/qtproject/
中国互联网络信息中心:https://mirrors.cnnic.cn/qt/
http://download.qt.io/

 

 

 2.tslib的下载

 https://github.com/libts/tslib/releases

下载版本tslib-1.22.tar.bz2

3.交叉编译环境

使用Ubuntu18.04

4.交叉编译链

这个是客户指定的,我的是host_rk3308_toolchain.tar.gz

直接解压 

配置环境变量,使得交叉编译环境开机生效

 

# 交叉编译

 a.tslib的交叉编译

 

 sudo apt-get install automake

 sudo  apt-get install autogen

sudo apt-get install  libtool

./configure --prefix=/home/jhd/arm_tslib --host=aarch64-linux ac_cv_func_malloc_0_nonnull=yes

其中--host=该软件将运行的平台,--prefix交叉编译完生成库的位置

 

 

 查看日志

 

故进行下列操作

 

 

 

 

再次执行./configure --prefix=/home/jhd/arm_tslib --host=aarch64-linux ac_cv_func_malloc_0_nonnull=yes

然后make install可看到生成了arm_tslib库

 

 

 

b.qt5.12.2的解压缩
下载后文件为qt-everywhere-src-5.12.2.tar.xz
xz -d qt-everywhere-src-5.12.2.tar.xz 解压为tar后缀的
tar -xvf qt-everywhere-src-5.12.2.tar

cd qt-everywhere-src-5.12.2

gedit  qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

 

 可执行./configure -help查看具体参数配置

 

 编写脚本autoconfig.sh

#!/bin/sh
./configure -prefix /home/jhd/qt5.12.2-aarch64 \
-opensource \
-release \
-no-pch \
-confirm-license \
-xplatform linux-aarch64-g++ \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-iconv \
-no-opengl \
-skip qtdeclarative \
-skip qtquickcontrols \
-skip qtquickcontrols2 \
-skip qt3d \
-skip qtcanvas3d \
-skip qttools \
-no-cups \
-no-glib \
-no-dbus \
-no-rpath \
-no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 \
-no-avx \
-no-openssl \
-qreal float \
-nomake examples \
-linuxfb \
-I /home/jhd/arm_tslib/include \      
-L /home/jhd/arm_tslib/lib

其中-I /home/jhd/arm_tslib/include  为上面tslib交叉编译后生成的include路径;-L /home/jhd/arm_tslib/lib为上面tslib交叉编译后生成的lib路径

再普通用户下执行chmod +x autoconfig.sh 

然后执行./autoconfig.sh 

 然后make -j4

make install

 C.qt程序编译生成目标平台可执行文件

在ubuntu中打开qtcreator

 

 

 

 

 

然后编译生成可执行文件

 

 #移植到arm上运行qt程序

(a)环境配置

 把上面qt5.12.2-aarch64的库中lib和plugins文件夹打包为qt5.12.2-aarch64.zip或者qt5.12.2-aarch64.tar

把arm_tslib库打包成arm_tslib.tar

然后通过usb或者串口或者scp或者ftp拷贝到板卡中的/userdata/BullDemo目录下

在开发板中执行 vi   /etc/profile 或者 ~/.bashrc  ;

//下面/userdata/BullDemo/qt5.12.2-aarch64为QT库放的位置

/userdata/BullDemo/qt5.12.2-aarch64/aarch64_tslib为tslib库所在位置

在最后写

export QTDIR=/userdata/BullDemo/qt5.12.2-aarch64           

export LD_LIBRARY_PATH=$QTDIR/lib:/userdata/BullDemo/qt5.12.2-aarch64/aarch64_tslib/lib:/usr/lib:/lib:

export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins                                             

export QT_QPA_FONTDIR=$QTDIR/lib/fonts

export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0

 

export T_ROOT=/userdata/BullDemo/qt5.12.2-aarch64/aarch64_tslib

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_PLUGINDIR=$T_ROOT/lib/ts

export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

export TSLIB_CALIBFILE=/etc/pointercal

export QT_QPA_GENERIC_PLUGINS=tslib

然后 source  /etc/profile   或者 source  ~/.bashrc

(2)触摸屏验证

首先要验证触摸屏,上面TSLIB_TSDEVICE=/dev/input/event0为指定触摸屏设备

执行cat  /dev/input/event0或者cat  /dev/input/event0 正常的话,触摸屏会有乱码。

然后执行触摸屏校准, /userdata/BullDemo/qt5.12.2-aarch64/aarch64_tslib/bin/ts_calibrate  

此时屏幕会出现坐标点,依次点击后会生成文件/etc/pointercal,该文件目录不要更改。

 

 

(3)运行可执行程序

./BullDemo -platform linuxfb -plugin tslib

 

posted on   大龄C开发  阅读(1304)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示