diff --git a/CMakeList.txt b/CMakeList.txt new file mode 100644 index 0000000..9442ef8 --- /dev/null +++ b/CMakeList.txt @@ -0,0 +1,52 @@ +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) \ No newline at end of file