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

目录

  • 1.下载RXTX
  • 2.源码下载
    • 方式一:
    • 方式二:
  • 3. 编译源码
  • 4.编译源码时遇到的问题
    • 问题1:./configure command not found
    • 问题2:error: 'UTS_RELEASE' undeclared
    • 问题3:libtool: install: armv6l-unknown-linux-gnu/librxtxRS485.la’ is not a directory
    • 问题4:configure: error: no acceptable C compiler found in $PATH
    • 问题5:-bash: make: command not found
    • 问题6:编译程序报错fatal error: sys/io.h: No such file or directory

【linux】Ubuntu aarch64编译安装RXTX进行串口通信_第1张图片

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

1.下载RXTX

下载官网:http://fizzed.com/oss/rxtx-for-java
【linux】Ubuntu aarch64编译安装RXTX进行串口通信_第2张图片

找到与系统版本一致的文件进行下载。
查看系统版本: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

操作如下:

在这里插入图片描述

【linux】Ubuntu aarch64编译安装RXTX进行串口通信_第3张图片
单击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 改为 #include

【linux】Ubuntu aarch64编译安装RXTX进行串口通信_第4张图片

#ifdef WIN32
#include 
#elif defined(__ARM__)
#include 
#else
#include 
#endif

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

你可能感兴趣的:(linux,linux,ubuntu,服务器)