/* * 平台适配配置文件 * * 替代 autotools 生成的 config.h,提供跨平台编译所需的宏定义。 * 默认配置针对 Linux 平台,其他平台请根据实际情况修改以下宏定义。 * * SPDX-License-Identifier: LGPL-2.1-or-later */ #ifndef MODBUS_CONFIG_H #define MODBUS_CONFIG_H /* ================================================================ * 版本信息(已硬编码,见 modbus-version.h) * 此处定义供源文件中 extern 声明使用 * ================================================================ */ #define LIBMODBUS_VERSION_MAJOR 3 #define LIBMODBUS_VERSION_MINOR 1 #define LIBMODBUS_VERSION_MICRO 12 /* ================================================================ * 平台功能检测开关 * * 以下宏定义控制条件编译行为。默认启用 Linux 常见功能。 * 如果你的平台不支持某项功能,请注释掉对应的 #define。 * ================================================================ */ /* 是否提供 termios2 结构体(Linux 4.x+ 支持,允许任意波特率) */ #define HAVE_STRUCT_TERMIOS2 1 /* 是否声明了 TIOCSRS485 ioctl(Linux RS485 模式切换) */ #define HAVE_DECL_TIOCSRS485 1 /* 是否声明了 TIOCM_RTS ioctl(Linux RTS 引脚控制) */ #define HAVE_DECL_TIOCM_RTS 1 /* 是否提供 strlcpy 函数(OpenBSD/macOS 原生支持,Linux 需自行实现) */ /* libmodbus 在 modbus.c 中提供了备用实现,因此这里通常不定义 */ /* #define HAVE_STRLCPY 1 */ /* 是否提供 头文件 */ #define HAVE_NETINET_IN_H 1 /* 是否提供 头文件 */ #define HAVE_NETINET_IP_H 1 /* 是否提供 gai_strerror 函数(用于 getaddrinfo 错误信息) */ #define HAVE_GAI_STRERROR 1 /* 是否提供 accept4 系统调用(Linux 2.6.28+) */ #define HAVE_ACCEPT4 1 #endif /* MODBUS_CONFIG_H */