文章目录
- 手动编译源码原因
- 源码下载
- 编译源码
- 编译中遇到的问题
- 错误一:
- 错误2
- 错误3
- 安装成功后显示
- 验证安装目录文件
- 总结
手动编译源码原因
官网不提供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实现串口依赖库)-亲测有效
总结
经过以上配置编译可以实现生成开发所需的串口依赖库