下载并安装MSYS2
更新系统
在开始菜单栏,打开MSYS2 MinGW 64-bit窗口
运行如下命令
pacman -Syu
pacman -Su

安装构建工具和依赖
pacman -S base-devel mingw-w64-x86_64-toolchain
pacman -S autoconf automake libtool
下载Modbus源码
https://github.com/stephane/libmodbus/releases,我这里下载的是v3.1.11
修改源码使之适应windows系统
-
打开src/modubs-tcp.c,修改239 行:
修改前:
rc = setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &option, sizeof(int));修改后:
rc = setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (const char *)&option, sizeof(int)); -
修改566行:
修改前:
if (setsockopt(new_s, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(enable)) == -1)修改后:
if (setsockopt(new_s, SOL_SOCKET, SO_REUSEADDR, (const char *)&enable, sizeof(enable)) == -1) -
修改688行:
修改前:
rc = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(enable));修改后:
rc = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (const char *)&enable, sizeof(enable));
修改完毕。
这里的行号可能略有不同,因为我没有直接修改,而是注释了原来的,重新加入了修改内容,可能导致实际行数会略微发生变化。
生成配置文件
在MSYS2窗口中,输入:cd 以上源码路径
输入:./autogen.sh,将会生成configure文件

输入:./configure --prefix=/f/libmodbus-3.1.11/install
说明,/f/libmodbus-3.1.11为我的源码路径,并且你不能写成f:/libmodbus-3.1.11/install

输入:make -j8

输入:make install

到这里就结束了,在install下可以看到.dll .a .h

8777

被折叠的 条评论
为什么被折叠?



