当前位置: 首页 > 工具软件 > Tslib > 使用案例 >

qt使用交叉编译方式调用tslib

邢承弼
2023-12-01

1. 下载tslib

git clone https://github.com/libts/tslib.git

2. 编译前的准备

使用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++

3. 进入目录开始编译

在使用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

4. 检查/op/tslib目录下是否为arm的可执行文件

如果没有配置好交叉编译器的话,默认编译出来的是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平台的程序。

5. 将库链接进qt,并编译qt

在配置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也会重新编译)

6. 使用时的配置

当配置好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
 类似资料: