【linux】Ubuntu aarch64编译安装RXTX进行串口通信

在这里插入图片描述

本文是基于linux aarch64/arm64进行的操作。
linux下安装java环境可参考:https://blog.csdn.net/qq_43622777/article/details/130059775

1.下载RXTX

下载官网:http://fizzed.com/oss/rxtx-for-java
在这里插入图片描述

找到与系统版本一致的文件进行下载。
查看系统版本:uname -a

在这里插入图片描述
官网没有arrch64(等同于arm64)版的已编译好的包,所以进行以下步骤,自行安装源码编译。

2.源码下载

方式一:

从下载路径:http://rxtx.qbang.org/pub/rxtx/下载解压后复制到linux;

方式二:

执行以下命令直接在linux内下载。

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

3. 编译源码

依次执行以下语句:


unzip rxtx-2.1-7r2.zip
# 进入到rxtx-2.1-7r2目录下
./configure

# 如果报错:configure: error: cannot guess build type; you must specify one,则用下面命令运行
./configure --build=arm-linux

make

4.编译源码时遇到的问题

参考文章:https://blog.csdn.net/cheng157507947/article/details/44039821

问题1:./configure command not found

这是由于没有安装gcc的交叉编译环境导致的报错,只需安装gcc编译即可。

问题2:error: ‘UTS_RELEASE’ undeclared

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

然后在/usr/include/linux/version.h中添加#define UTS_RELEASE "4.9.112"
上述4.9.112是上一步中获得的linux版本号。

命令如下:

uname -r
cd /usr/include/linux/
vim version.h

操作如下:

在这里插入图片描述

在这里插入图片描述
单击inert键开始编辑模式,单击esc键退出编辑模式,shift+:wq保存并退出。

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

这个错误会出现在JDK1.6及以上的运行环境下,需要对configureconfigure.in文件进行修改。
在configure文件中找到

Linux)
    LDFLAGS=$LDFLAGS" -lpthread"
    check_kernel_headers
    check_java_headers
    CFLAGS=$CFLAGS" -D__need_timespec"
    case $JAVA_VERSION in

    1.2*|1.3*|1.4*|1.5*)

在后边添加上当前JDK的版本号即可,如

Linux)
    LDFLAGS=$LDFLAGS" -lpthread"
    check_kernel_headers
    check_java_headers
    CFLAGS=$CFLAGS" -D__need_timespec"
    case $JAVA_VERSION in

1.2*|1.3*|1.4*|1.5*|1.6*|1.7*|1.8*)

完成以上两项修改后,就可以正常编译安装了。如果看到 Libraries have been installed in:/usr/lib/jvm/jdk-7-oracle-armhf/jre/lib/arm 则说明RXTX安装已经成功。

参考文章:https://blog.csdn.net/luzhiweistudy/article/details/79915741

问题4:configure: error: no acceptable C compiler found in $PATH

解决方案:安装GCC软件套件。
方法1:yum install gcc
方法2:apt-get install gcc
中途遇到Y/N的选项时,选择Y即可。

具体可参考文章:https://blog.csdn.net/caihuawei123/article/details/119778893

问题5:-bash: make: command not found

一般出现这个-bash: make: command not found提示,是因为安装系统的时候使用的是最小化mini安装,系统没有安装make、vim等常用命令,直接sudo apt-get install安装下即可。

sudo apt-get update
sudo apt-get install  gcc automake autoconf libtool make

直接ssh运行即可,安装make。

问题6:编译程序报错fatal error: sys/io.h: No such file or directory

原因是不同的Linux平台的 io.h 放置的位置不同。Windows下的io.h直接包含即可;
Linux平台下在sys文件夹下;ARM架构的系统中在sys文件夹下,而且名字也不一样,变成了uio.h。
解决方案: 将/src/RawImp.c中的 #include <sys/io.h> 改为 #include <sys/uio.h>

在这里插入图片描述

#ifdef WIN32
#include <io.h>
#elif defined(__ARM__)
#include <sys/uio.h>
#else
#include <sys/io.h>
#endif

参考文章:https://blog.csdn.net/qq_42679415/article/details/126470064

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值