libmodbus在ARM linux开发板上使用

一、源码下载

1、libmodbus官网

libmodbus

2、下载

选择长期稳定版本libmodbus-3.1.6.tar.gz

3.拷贝到虚拟机

通过fillzilla或者vmtools直接拖动到linux虚拟机中

二、交叉编译

1、解压

拷贝到相应目录,解压,例如拷贝在/home/modbus下,modbus目录需要自己创建

在home/modbus下打开terminal 输入解压命令

tar   -zxvf   libmodbus-3.1.6.tar.gz

解压完成后在同目录下会生成 libmodbus-3.1.6文件夹,进入此文件夹

cd  /home/modbus/libmodbus-3.1.6

2、创建安装目录

在/home/modbus/libmodbus-3.1.6目录下创建一个install文件夹

    sudo mkdir   install

3、配置编译选项

在/home/modbus/libmodbus-3.1.6目录下,打开终端,进行配置编译选项

(注:--prefix选项是安装目录,根据自己环境确定)

./configure   --host=[交叉编译工具链前缀]   --enable-static   --prefix=[安装路径]/install/

[安装路径]例如/usr/local/modbus,[交叉编译工具链]例如arm-none-linux-gnueabihf

 我最终程序是要用在ARM芯片上,所以交叉编译工具链这里我输入的是arm-none-linux-gnueabi 注意工具链一定要选对,否则一是makefile时,识别不了so文件,二是在开发板上无法运行。比如生成时用的是gnueabi,makefile时用的是gnueabihf 那就识别不了文件。

如果你使用libmodbus就是用在linux服务器上的,那么编译工具链就输入gcc即可

我的configure示例:

./configure   --host=arm-none-linux-gnueabihf      --prefix=/home/modbus/libmodbus-3.1.6/install

5、编译&安装

在/home/modbus/libmodbus-3.1.6目录下,打开终端,输入make 完成后再输入make install

执行此功能后,会在install文件夹生成三个文件夹,include lib share   lib中包含了so库 include中包含了modbus.h的文件。 在编程时,要将include中的内容拷贝到自己项目中,lib里的 3个带so的文件要拷贝到虚拟机和开发板的 /usr/lib下。

6. 编写makefile

    libmodbus是以so库的形式加载的,编写makefile时,要指明so库的路径。因为用到了modbus.h所以也需要指明modbus.h的路径。

 如图中所示 -I指明了modbus.h的路径 -L指明了库所在的路径 -lmodbus指明了要链接的库。 注意:在linux中,libxxx.so文件,他的文件名在链接时只需要lib后的xxx,不需要打lib  比如要链接lib123.so 那就写 -l123即可,后缀也不用写。

编译完成后main放到开发板里运行即可

附上libmodbus函数的中文翻译libmodbus官方手册中文翻译_跃动的风的博客-CSDN博客_libmodbus使用说明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值