交叉编译tslib

本文详细描述了如何在Ubuntu16.04的虚拟机中为ARMIMX6ULLPro开发板进行tslib1.4.0的交叉编译,包括下载、依赖库安装、autogen.sh脚本执行、配置编译器、编译和安装步骤,以及遇到的问题和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

交叉编译tslib

环境:

ubuntu16.04(虚拟机)

tslib 版本:1.4.0

交叉编译器:gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf

目标架构:ARM 野火imx6ull pro开发板

tslib的下载

tslib的下载地址 https://github.com/Microsoft/tslib

image-20231101161852828

下载tslib到如下目录:

image-20231101120454440

在编译前安装一些需要依赖的库

 apt-get install autoconf automake libtool pkg-config m4

image-20231101121720823

执行augtogen.sh脚本

image-20231101121141522

sudo ./autogen.sh

输出信息如下:

image-20231101121842784

配置编译器

这里交叉编译器使用了绝对路径,不使用绝对路径,第一次没有使用绝对路径,导致后面make install的时候出错了。所以,我使用绝对路径,这里是否使用绝对路径和交叉编译器的版本根据自己实际情况来。

./configure CC=/home/cwz/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CXX=/home/cwz/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ --host=arm-linux-gnueabihf --prefix=/opt/tslib1.4 ac_cv_func_malloc_0_nonnull=yes

image-20231101134715358

执行上面的命令前需要在/opt下创建tslib1.4目录,后面编译好的tslib文件会放到这里,创建目录如下图所示:

image-20231101134448018

编译

这里直接输入make命令编译就可以了。

make

image-20231101134926602

安装

输入下面命令就能安装了。

make install

这里出现下面的错误,是由于没找到交叉编译器,导致没有生成需要的库,所以,上面配置编译编译器./configure那里使用绝对路径避免了下面问题。

image-20231101140257623

修改配置文件

修改这个配置文件 /opt/tslib1.4/etc/ts.conf为后面编译qt做准备。

将这行内容注释取消。

image-20231101143513825

到此就完成了tslib的交叉编译。

### 交叉编译 tslib 的准备工作 为了成功地在嵌入式 Linux 系统上运行图形界面应用程序,触摸屏校准库 `tslib` 是必不可少的一部分。对于 STM32MP157 板子而言,在开始交叉编译之前,确保已经安装并配置好了适合该平台的交叉编译工具链[^1]。 ### 获取源代码 首先需要获取 `tslib` 的源代码包。通常可以从官方仓库或者其他可信资源下载最新版本。解压缩后会得到一个名为 `tslib-1.22` 的文件夹,这将是后续工作的基础目录[^2]。 ### 配置与构建选项设置 进入 `tslib-1.22` 文件夹内执行如下命令来初始化环境变量: ```bash export PATH=/path/to/toolchain/bin:$PATH export CROSS_COMPILE=arm-linux-gnueabihf- ``` 这里 `/path/to/toolchain/bin` 应替换为实际使用的交叉编译器路径;而 `CROSS_COMPILE` 则指定了前缀名以便于调用特定架构下的编译程序。 接着通过以下指令来进行配置: ```bash ./autogen.sh ./configure --host=arm-linux-gnueabi \ --prefix=/usr/local/tslib-arm \ LDFLAGS=-L/path/to/sysroot/usr/lib \ CPPFLAGS=-I/path/to/sysroot/usr/include ``` 注意这里的 `--prefix` 参数定义了最终安装位置,可以根据个人需求调整;同时还需要指定目标系统的头文件(`CPPFLAGS`) 和链接库 (`LDFLAGS`) 所处的位置,即 sysroot 路径。 ### 编译过程 当一切准备就绪之后,可以启动正式的编译流程: ```bash make clean && make -j$(nproc) ``` 上述命令中的 `-j$(nproc)` 可以充分利用多核处理器加速整个编译速度[^3]。 ### 安装到 NFS 或者根文件系统 一旦编译顺利完成,则可以通过下面的方式将其部署至开发板上的文件系统中去: ```bash sudo make install DESTDIR=$PWD/_install/ cp -rf _install/* /mnt/nfs_rootfs/ ``` 这段脚本的作用在于先将所有生成的内容临时放置在一个本地 `_install/` 目录之下,然后再整体拷贝给挂载好的网络共享存储(NFS)或者是 SD 卡内的 rootfs 中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值