jambi

导航

 

libmodbus是一个工业总线modbus的开源协议栈,支持主从通讯方式,在工控领域应用比较广泛。协议栈在Linux下编译比较简单,在windows下的编译稍显困难。官方文档仅提供了windows下使用visual studio编译为win32链接库的方法,未提供编译为64位动态链接库的方法。

由于使用vs编译64位动态链接库会报错,本文使用msys2 + mingw32,完成了libmodbus 64位动态链接库的编译。

 

1,配置msys2编译环境

# 更新系统包
pacman -Syu

# 安装编译工具链
pacman -S --needed base-devel mingw-w64-x86_64-toolchain

# 安装依赖库
pacman -S mingw-w64-x86_64-libwinpthread-git

2,获取libmodbus源码

# 下载稳定版
wget https://libmodbus.org/releases/libmodbus-3.1.10.tar.gz
tar -xvf libmodbus-3.1.10.tar.gz
cd libmodbus-3.1.10

3,配置编译环境

# 生成 configure 脚本 (仅git版本需要)
./autogen.sh

# 配置编译选项 (选择一种)
# 64位静态库
./configure --prefix=/mingw64 --host=x86_64-w64-mingw32 --enable-static=yes --enable-shared=no

# 64位动态库
./configure --prefix=/mingw64 --host=x86_64-w64-mingw32 --enable-static=no --enable-shared=yes

# 32位版本 (需在 MinGW x86 终端)
./configure --prefix=/mingw32 --host=i686-w64-mingw32

4,编译安装

# 编译 (-j参数根据CPU核心数调整)
make -j$(nproc)

# 安装到MSYS2系统目录
make install

# 验证安装
ls /mingw64/bin/libmodbus*
ls /mingw64/include/modbus.h

5,编译完成

 

posted on 2025-06-10 16:33  jambi  阅读(307)  评论(0)    收藏  举报