git clone https://github.com/libts/tslib.git
使用configure工具前,需要安装安装autoconf工具,ubuntu可以使用apt-get安装
这里用到了交叉编译工具aarch64-linux-gnu-gcc,ubuntu可以使用apt-get安装gcc-aarch64和g+±aarch64
sudo apt-get install autoconf libtool automake
export CC=/usr/bin/aarch64-linux-gnu-gcc
export CXX=/usr/bin/aarch64-linux-gnu-g++
在使用configure时,–prefix可以指定安装的目录,这里make会安装到/opt/tslib目录下。–host表明编译的文件在arm上执行。
./autogen.sh
./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=/opt/tslib
make
sudo make install
如果没有配置好交叉编译器的话,默认编译出来的是x86平台的。
test@ubuntu:~/Documents/tslib$ file /opt/tslib/bin/ts_print
/opt/tslib/bin/ts_print: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=60b3a4e767a98b95af4b0fc35e5b6bea4cea8503, not stripped
这里可以看到,我们编译出来的是ARM平台的程序。
在配置qt的configure文件时,需要增加-tslib标志,表明qt增加使用tslib库。然后链接tslib的lib库地址和头文件地址。
#添加tslib交叉编译的动态库文件和头文件路径
TSLIB_LIB=/opt/tslib/lib
TSLIB_INC=/opt/tslib/include
./configure ....
-tslib \
-I"${TSLIB_INC}" \
-L"${TSLIB_LIB}"
# 可以增加-recheck-all重新确认
如果之前已经configure一遍了,那么在配置中增加-recheck-all可以重新配置一遍(当然make也会重新编译)
当配置好qt环境时,执行qt程序前,需要设置环境配置,让qt使用tslib库。
export TSLIB_TSDEVICE=/dev/input/$eventx
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/$eventx:rotate=0
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:rotation=90
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/$eventx
export QWS_MOUSE_PROTO=tslib
export QT_QPA_EGLFS_TSLIB=1
export QT_QPA_FB_TSLIB=1