cmake_minimum_required(VERSION 3.0) project(modbus_plugin) # 设置编译选项 set(CMAKE_C_STANDARD 99) set(CMAKE_C_FLAGS "-Wall -fPIC") # Arkime 安装目录(根据你的实际情况修改) set(ARKIME_PREFIX /opt/arkime) # libmodbus 安装目录(指向你手动编译安装的 Libmodbus 目录) set(LIBMODBUS_PREFIX /path/to/your/static/libmodbus) # GLib 安装目录 # 方法1: 直接指定glibconfig.h所在的目录的上一级 #set(GLIB_INCLUDE_DIR /usr/lib/glib-2.0/include) # 假设 glibconfig.h 在 /usr/lib/glib-2.0/include 目录下 # 方法2: 更精确地指定所有需要的GLib头文件目录,确保万无一失 include_directories( /usr/include/glib-2.0 /usr/lib/x86_64-linux-gnu/glib-2.0/include ) # Jansson 安装目录 (根据你的实际情况修改, 如果需要) # 可以在 /usr/include 或 /usr/local/include 中尝试 # 如果找不到 jansson.h , 先安装 libjansson-dev # sudo apt-get install libjansson-dev set(JANSSON_INCLUDE_DIR /usr/include) # 包含头文件 include_directories( ${ARKIME_PREFIX}/include ${LIBMODBUS_PREFIX}/include #${GLIB_INCLUDE_DIR} # 注释掉,使用更精确的include目录 ${JANSSON_INCLUDE_DIR} ) # 源文件 set(SOURCE_FILES src/modbus_plugin.c ) # 创建共享库 add_library(modbus_plugin SHARED ${SOURCE_FILES}) # 设置链接选项,强制静态链接 libmodbus target_link_libraries(modbus_plugin -L${LIBMODBUS_PREFIX}/lib -lmodbus -lm -lglib-2.0 -ljansson ) # 设置安装目录和目标 install(TARGETS modbus_plugin DESTINATION /opt/arkime/plugins)