windows下Qt、MinGW、libmodbus源码方式的移植与使用

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_32

HEADERS += \
    $$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.h

SOURCES += \
    $$PWD/modbus-data.c \
    $$PWD/modbus-rtu.c \
    $$PWD/modbus-tcp.c \
    $$PWD/modbus.c

INCLUDEPATH += $$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…

猜你喜欢

转载自blog.csdn.net/qq153471503/article/details/132508739