【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 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/11684.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【ZUUL2踩坑】题一:Ribbon集成动态properties存在的原生风险

目录 一、问题背景 二、问题分析 1、配置文件空档期的问题 一、问题背景 JAVA的Properties工具有两种写配置文件的方式&#xff0c;一种是覆盖&#xff0c;一种是追加。 但是动态配置文件一般需要进行创建或更新&#xff0c;不会选择追加内容&#xff0c;所以只能选择进行配…

docker目录映射

docker 常用命令 docker ps // 查看所有正在运行容器 docker stop containerId // containerId 是容器的ID docker ps -a // 查看所有容器 $ docker ps -a -q // 查看所有容器ID docker stop $(docker ps -a -q) // stop停止所有容器 docker rm $(docker ps -a -q) // remove删…

replugin宿主与插件通信小结

近来replugin开发中遇到宿主和插件间需要通信的情形&#xff0c;思来只有进程间通信(IPC)才是比较好的宿主与插件的通信方式。而Android进程间通信主要有2种方式&#xff1a;Messenger和AIDL。 AIDL&#xff08;Android Interface Definition Language&#xff09;是Android接…

ChatGPT团队中,3个清华学霸,1个北大学霸,共9位华人

众所周知&#xff0c;美国硅谷其实有着众多的华人&#xff0c;哪怕是芯片领域&#xff0c;华为也有着一席之地&#xff0c;比如AMD 的 CEO 苏姿丰、Nvidia 的 CEO 黄仁勋 都是华人。 还有更多的美国著名的科技企业中&#xff0c;都有着华人的身影&#xff0c;这些华人&#xff…

Java入坑之类的派生与继承

一、继承 1.1继承的概念 Java中的继承&#xff1a;子类就是享有父类的属性和方法&#xff0c;并且还存在一定的属性和方法的扩展。 Subclass&#xff0c;从另一个类派生出的类&#xff0c;称为子类(派生类&#xff0c;扩展类等) Superclass&#xff0c;派生子类的类&#xff…

3.5 函数的极值与最大值和最小值

学习目标&#xff1a; 我要学习函数的极值、最大值和最小值&#xff0c;我会采取以下几个步骤&#xff1a; 理解基本概念&#xff1a;首先&#xff0c;我会理解函数的极值、最大值和最小值的概念。例如&#xff0c;我会学习函数在特定区间内的最高点和最低点&#xff0c;并且理…

( “树” 之 DFS) 104. 二叉树的最大深度 ——【Leetcode每日一题】

104. 二叉树的最大深度 给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例&#xff1a; 给定二叉树 [3,9,20,null,null,15,7]&#xff0c; 返回它的最大深度 3 。 思路&am…

激光和相机的标定

一、手动标定 代码工程&#xff1a;GitHub - Livox-SDK/livox_camera_lidar_calibration: Calibrate the extrinsic parameters between Livox LiDAR and camera 这是Livox提供的手动校准Livox雷达和相机之间外参的方法&#xff0c;并在Mid-40&#xff0c;Horizon和Tele-15上进…

ReactNative入门

React基本用法&#xff1a; react与js不同的点在于 react使用的是虚拟DOM js是真实DOM 作用&#xff1a;当有新的数据填充 可以复用之前的&#xff0c;而js需要整体重新渲染 创建虚拟DOM还可以使用jsx语法直接声明&#xff1a; 注意要用babel标签将jsx转化为js 但是建议采用j…

图解并用 C 语言实现非比较排序(计数排序、桶排序和基数排序)

目录 一、计数排序 二、桶排序 三、基数排序 一、计数排序 算法步骤&#xff1a; 找出待排序数组 arr 中的最小值和最大值&#xff08;分别用 min 和 max 表示&#xff09;。 创建一个长度为 max - min 1、元素初始值全为 0 的计数器数组 count。 扫描一遍原始数组&…

2023 年嵌入式世界的3 大趋势分析

目录 大家好&#xff0c;本文讲解了嵌入式发展的3个大趋势&#xff0c;分享给大家。 趋势#1 – Visual Studio Code Integration 趋势#2 –支持“现代”软件流程 趋势 #3 – 在设计中利用 AI 和 ML 结论 大家好&#xff0c;本文讲解了嵌入式发展的3个大趋势&#xff0c;分享…

Python圈的普罗米修斯——一套近乎完善的监控系统

文章目录前言一、怎么采集监控数据&#xff1f;二、采集的数据结构与指标类型2.1 数据结构2.2 指标类型2.3 实例概念2.4.数据可视化2.5.应用前景总结前言 普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统。当年&#xff0c;由于SoundCloud公司生产了太多的服务&…

网络安全实战之植入后门程序

在 VMware 上建立两个虚拟机&#xff1a;win7 和 kali。 Kali&#xff1a;它是 Linux 发行版的操作系统&#xff0c;它拥有超过 300 个渗透测试工具&#xff0c;就不用自己再去找安装包&#xff0c;去安装到我们自己的电脑上了&#xff0c;毕竟自己从网上找到&#xff0c;也不…

如何把数据库中的数据显示到页面

主要内容&#xff1a;使用JDBC访问数据库中数据&#xff08;Java Web数据可视化案例&#xff09; 文章目录前期准备&#xff1a;案例&#xff1a;第一步&#xff1a;创建数据库及数据第二步&#xff1a;编写实体类第三步&#xff1a;编写Dao类第四步&#xff1a;编写Servlet代码…

springboot集成hadoop3.2.4HDFS

前言 记录springboot集成hadoop3.2.4版本&#xff0c;并且调用HDFS的相关接口&#xff0c;这里就不展示springboot工程的建立了&#xff0c;这个你们自己去建工程很多教程。 一、springboot配置文件修改 1.1 pom文件修改 <!-- hadoop依赖 --><dependency><gro…

Stable Diffusion - API和微服务开发

Stable Diffusion 是一种尖端的开源工具&#xff0c;用于从文本生成图像。 Stable Diffusion Web UI 通过 API 和交互式 UI 打开了许多这些功能。 我们将首先介绍如何使用此 API&#xff0c;然后设置一个示例&#xff0c;将其用作隐私保护微服务以从图像中删除人物。 推荐&…

一种轻量的“虚拟机”——Windows 沙盒模式

Windows 沙盒模式Windows沙盒的好处操作步骤Windows沙盒的好处 相比虚拟机和第三方的沙盒软件&#xff0c;Windows Sandbox启用后仅占用100MB硬盘空间&#xff0c;还能与物理机安全地共享部分内存空间。简单来说就是易用、免费、不卡机&#xff01; 由于要保证沙盒内的数据不…

(九)【软件设计师】计算机系统-浮点数习题

文章目录一、2009年下半年第3、4题二、2011年上半年第5题三、2012年下半年第3题四、2015年上半年第1题五、2015年下半年第3题六、2016年下半年第3题七、2018年上半年第1题八、2020年下半年第3题知识点回顾 &#xff08;八&#xff09;【软件设计师】计算机系统—浮点数一、2009…

Android13 PMS是如何启动的?

作者&#xff1a;Arthas0v0 平常使用安卓实际就是在使用各种app&#xff0c;而下载的app实际是一个apk文件。这个apk文件的安装就交给了PackageManagerService来实现。PackageManagerService的启动也是在SystemServer中。这个过程比较长需要长一点的时间来理。 SystemServer.s…

ORACLE EBS 系统架构与应用实践(一)

一、从ERP到EBS 从上世纪70年代晚期的物料需求计划MRP&#xff08;Material Requirements Planning&#xff09;到80年代的MRP II&#xff0c;再到90年代的企业资源计划ERP&#xff08;Enterprise Resource Planning&#xff09;&#xff0c;企业管理软件&#xff08;或曰应用…