TXRX串口通信RAM版自己编译

引言:目前 javaxcomm(旧) gunio(新),目前rxtx-2.1-7-bins-r2.zip版本为32位的win或者x86或者x386,mfz-rxtx-2.2-32位-64位.rar有64位。但是不支持ARM架构的。

  1. 下载source源码
    http://mvnrepository.com/

  2. 阅读学习移植指导文件
    学习链接 http://blog.chinaunix.net/uid-20544507-id-3494422.html
    TXRX串口通信RAM版自己编译_第1张图片

  3. 移植指导提示关注文件

There are probably three areas you will need to focus on:
    configure.in
    src/SerialImp.c src/SerialImp.h src/ParallelImp.c
    RXTXCommDriver.java  (just add the ports for your OS)
  1. 移植提示步骤,resource 目录下操作
Edit configure.in, 
run autoconf, 
run configure, 
run make
  1. 执行编译遇到的问题和解决
    参考 https://blog.csdn.net/cheng157507947/article/details/44039821
问题1:修改configure.in和configure内部的jdk版本选择,我的版本为jdk1.8.0_162。
解决1:最后一行添加1.6* 1.7* 1.8* 保证版本选择
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*) 

问题2:执行autoconf无此命令?(rpm安装类似)
解决2:sudo apt-get install autoconf

问题3:执行过程报此错误?
conftest.c:8:9: error: 'UTS_RELEASE' undeclared (first use in this function)
  printf(UTS_RELEASE"\n");
         ^
conftest.c:8:9: note: each undeclared identifier is reported only once for each function it appears in
conftest.c:8:20: error: expected ')' before string constant
  printf(UTS_RELEASE"\n");
解决3:
获取版本指令:uname -r
root@htnice:/usr/java/jdk1.8.0_162/bin# uname -r
3.4.39
然后在/usr/include/linux/version.h中添加#define UTS_RELEASE "3.4.39"

问题4:自己gcc调试编译so库提示找不到jni.h
解决4:参考链接 https://www.jianshu.com/p/e860170df83a,我们只需要按步骤走就可以,编译过程中自行执行了指令

6.make编译过程
可以看到生成相应的so库文件
TXRX串口通信RAM版自己编译_第2张图片
7.so库的位置
TXRX串口通信RAM版自己编译_第3张图片
8.执行make install 指令,自行安装到jdk目录里面
TXRX串口通信RAM版自己编译_第4张图片
9.注意,未调试验证,不知是都可靠
10.附送,ARM-linux相关设备信息相关查询指令
接入usb设备状态
TXRX串口通信RAM版自己编译_第5张图片
查看内存信息
TXRX串口通信RAM版自己编译_第6张图片
log相关信息
TXRX串口通信RAM版自己编译_第7张图片
简单信息指令
TXRX串口通信RAM版自己编译_第8张图片
安装autoTool
TXRX串口通信RAM版自己编译_第9张图片
膜拜大神:https://blog.csdn.net/cheng157507947/article/details/43764623
https://blog.csdn.net/cheng157507947/article/details/44039821

简单拷包脚本(.bat):

@echo off
::查看JDK的安装路径
::set java_home
echo %JAVA_HOME% > jdk.txt
echo %rxtxParallel% >> jdk.txt
echo %rxtxSerial% >> jdk.txt
echo %RXTXcomm% >> jdk.txt
SET rxtxParallel=\jre\bin\rxtxParallel.dll"
SET rxtxSerial=\jre\bin\rxtxSerial.dll"
SET RXTXcomm=\jre\lib\ext\RXTXcomm.jar"
SET rxtxParallel="%JAVA_HOME%%rxtxParallel%
SET rxtxSerial="%JAVA_HOME%%rxtxSerial%
SET RXTXcomm="%JAVA_HOME%%RXTXcomm%
echo "开始拷贝rxtxParallel.dll文件"
copy rxtxParallel.dll %rxtxParallel%
echo "开始拷贝rxtxSerial.dll文件"
copy rxtxSerial.dll %rxtxSerial%
echo "开始拷贝RXTXcomm.dll文件"
copy RXTXcomm.jar %RXTXcomm%
echo "拷贝完成"
pause

你可能感兴趣的:(Linux,txrx,arm架构,库编译)