赞
踩
选择长期稳定版本libmodbus-3.1.6.tar.gz
3.拷贝到虚拟机
通过fillzilla或者vmtools直接拖动到linux虚拟机中
拷贝到相应目录,解压,例如拷贝在/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
在/home/modbus/libmodbus-3.1.6目录下创建一个install文件夹
sudo mkdir install
在/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
在/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使用说明
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。