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 ソース コード ファイルを保存するフォルダー libmodbus-3.1.10 を作成し、そこに 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 を含む 2 つのヘッダー ファイルを見つけて、上記のマクロ定義 _WIN32_WINNT を追加します。
これが行われる理由については、私の他のブログ投稿を参照してください: Windows での MSYS および MinGW コンパイル環境は、ネットワーク API 使用時にエラーを報告します: `inet_pton' ソリューションへの未定義の参照
次に、それを Qt プロジェクトの .pro ファイルに追加しますinclude($$PWD/libmodbus-v3.1.10/libmodbus.pri)
。
終わる…