ARM架构源码编译RXTX LINUX JAVA串口开发项目部署

发布于:2023-09-16 ⋅ 阅读:(319) ⋅ 点赞:(0)


手动编译源码原因

官网不提供ARM架构的依赖包
在这里插入图片描述


源码下载

wget http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7r2.zip

解压

unzip rxtx-2.1-7r2.zip

编译源码

cd rxtx-2.1-7r2

./configure --build=arm-linux

make

make install

解压rxtx-2.1-7r2文件夹
在这里插入图片描述


编译中遇到的问题

错误一:

./src/RS485Imp.c:96:25: error: 'UTS_RELEASE' undeclared (first use in this function)
  if(strcmp(name.release,UTS_RELEASE)!=0)

这是由于 version.h 中缺少 UTS_RELEASE 信息,需要手工添加。先获取当前系统的版本信息:

uname -r

在这里插入图片描述
然后在 /usr/include/linux/version.h 中添加

#define UTS_RELEASE "5.10.0"

在这里插入图片描述

错误2

libtool: install: armv6l-unknown-linux-gnu/librxtxRS485.la’ is not a directory

这个错误会出现在JDK1.6及以上的运行环境下,需要对configure文件进行修改。在configure文件中找到所有的 1.2*|1.3*|1.4*|1.5* ,将现有的JDK版本加入进去即可.如:改成 1.2*|1.3*|1.4*|1.5*|1.6*|1.7*|1.8* .

修改命令

vim configure
#按下 : 进入命令行模式。
%s/1\.2\*|1\.3\*|1\.4\*|1\.5\*/&|1\.6*|1\.7*|1\.8*/g
#该命令将会在整个文件范围内查找匹配项并进行替换。其中,% 表示全部行,s/1\.2\*|1\.3\*|1\.4\*|1\.5\*/&|1\.6*|1\.7*|1\.8*/g 是替换命令,其中 \. 和 \* 用于转义字符.和*,& 表示匹配到的内容本身,g 用于全局匹配替换。
#按下回车键执行替换命令。

错误3

RawImp.c可能在编译中会找不到sys/io.h文件
将这个改成sys/uio.h就可以了

vim RawImp.c

:65

# sys/io.h -> sys/uio.h

在这里插入图片描述
在这里插入图片描述

安装成功后显示

在这里插入图片描述

验证安装目录文件

在这里插入图片描述
在这里插入图片描述
解决方案来源于arm64 源码编译rxtx(java实现串口依赖库)-亲测有效

总结

经过以上配置编译可以实现生成开发所需的串口依赖库

本文含有隐藏内容,请 开通VIP 后查看