目录
- 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 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及以上的运行环境下,需要对configure
和configure.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