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,编译完成
浙公网安备 33010602011771号