windows下Qt、MinGW、libmodbus源码方式的移植与使用
1、前言
libmodbus官网:https://libmodbus.org/
github下载:https://github.com/stephane/libmodbus
截止2023年8月26日时,libmodbus最新版本为3.1.10,本篇博客基于此版本进行移植。
2、移植
libmodbus的源码文件如下所示:
在Qt项目目录下创建文件夹libmodbus-3.1.10用于存放libmodbus的源码文件,并将modbus-version.h.in也复制过去并改名:
修改modbus-version.h文件,将里面的版本信息改为实际的版本号:
创建一个名为libmodbus.pri文件,里面加入:
win32:LIBS += -lws2_32HEADERS += \$$PWD/modbus-private.h \$$PWD/modbus-rtu-private.h \$$PWD/modbus-rtu.h \$$PWD/modbus-tcp-private.h \$$PWD/modbus-tcp.h \$$PWD/modbus-version.h \$$PWD/modbus.hSOURCES += \$$PWD/modbus-data.c \$$PWD/modbus-rtu.c \$$PWD/modbus-tcp.c \$$PWD/modbus.cINCLUDEPATH += $$PWD
修改modbus-tcp.c文件,找到winsock2.h和ws2tcpip.h这两个头文件包含位置,在上方添加宏定义_WIN32_WINNT,如下图所示:
至于为什么这么做,看我另一篇博客解释:windows下MSYS、MinGW编译环境使用网络API时报错:undefined reference to `inet_pton‘解决办法
然后在Qt工程的.pro文件中加入include($$PWD/libmodbus-v3.1.10/libmodbus.pri)
就可以了!
ends…