1.下载libmodbus
方法一: sudo apt install libmodbus
方法二: https://github.com/stephane/libmodbus/
方法1有可能无法获取到源,那么就用方法2从git拉取下来。如果git拉失败了,就需要去网上找源码下载了。(csdn不让我上传)
2.编译
后面教程是基于方法二,把modbus源码下载下来的教程。如果使用方法一则不需要纠结编译问题。
首先解压压缩包 tar -zxvf libmodbus-3.1.6.tar.gz
然后进去文件夹,
执行./configure,然后再执行make install就可以安装到本地了。
如果使用库的时候程序报找不到库,可以使用搜索去找libmodbus.so,或者在/usr/local/lib目录下查看。然后将库的路径加到环境(后面路径根据实际添加)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
编译过程中问题:
①以上是在虚拟机ubuntu上编译时正常的,但是在一切裁剪过的linux系统上编译会有其他问题,主要都是因为其他库缺少的原因。
如产生错误:WARNING: 'aclocal-1.14' is missing on your system
详情参考:解决Ubuntun 12.04编译Mesa10.3 WARNING: 'aclocal-1.14' is missing on your system_arackethis的博客-CSDN博客 其主要就是缺少其他库的原因,本人在树莓派上安装以下库后,直接make即可正常
如 sudo apt install automake
②如果想要将src文件都提取出来自行编译成库,不要使用g++进行编译,否则会报错。直接用gcc编译即可。
使用
使用很简单,引用头文件 #include "modbus.h" ,链接的时候加上-lmodbus即可
具体函数例程可以查看tests文件夹里面的例程。