简介:SNMP(Simple Network Management Protocol,简单网络管理协议),Net-SNMP是一个免费的、开放源码的SNMP实现,以前称为UCD-SNMP。它包括agent和多个管理工具的源代码,支持多种扩展方式。
1.准备原材料,下载ndk,net-snmp源码
下载源码包
配置好NDK环境变量 .bashrc添加
export NDK_10C_PATH=$TOOLS/ndk/android-ndk-r10c
2.编写Makefile和Android.mk文件
编写net-snmp bulid.mk文件
- 设置NDK环境,交叉编译工具链
WORK_DIR:=$(shell pwd)
OUT_DIR :=$(WORK_DIR)/../out
NDKPATH := $(NDK_10C_PATH)
PLATFORM:= $(NDKPATH)/platforms/android-21/arch-arm
TOOLS_VER := $(NDKPATH)/toolchains/arm-linux-androideabi-4.8
PREBUILT:= $(TOOLS_VER)/prebuilt/linux-x86/bin
CROSS := $(PREBUILT)/arm-linux-androideabi-
AS := $(CROSS)as
LD := $(CROSS)ld
CC := $(CROSS)gcc
CPP := $(CROSS)g++
AR := $(CROSS)ar
NM := $(CROSS)nm
STRIP := $(CROSS)strip
OBJCOPY := $(CROSS)objcopy
OBJDUMP := $(CROSS)objdump
TAR_BIN := $(OUT_DIR)/system/bin
TAR_LIB := $(OUT_DIR)/system/lib
TAR_ETC := $(OUT_DIR)/system/etc
PREFIX := /system
CPU := armv7-a
- 设置编译和链接的相关标志位,在configure阶段会传入这些标志
CFLAGS += --sysroot=$(PLATFORM) -fno-strict-aliasing -fpic -fno-strict-aliasing \
-Wno-traditional -DANDROID -ggdb -O2 -pipe -mfloat-abi=softfp \
-mfpu=neon -marm -march=$(CPU) -mtune=cortex-a9
LDFLAGS := -Wl,-Bdynamic -Wl,-dynamic-linker,/system/bin/linker \
-L$(PLATFORM)/usr/lib -Wl,-rpath-link=$(PLATFORM)/usr/lib \
-lc -lstdc++ -lm -lgcc
- 设置编译进系统的MIBS,管理信息库(MIB,Management Information Base)是TCP/IP网络管理协议标准框架的内容之一,MIB定义了受管设备必须保存的数据项、允许对每个数据项进行的操作及其含义,即管理系统可访问的受管设备的控制和状态信息等数据变量都保存在MIB中。