Android平台移植Net-Snmp小记

本文记录了在Android平台上移植Net-SNMP的过程,包括下载NDK和源码,配置环境变量,编写Makefile和Android.mk文件,特别强调了如何在客户端和服务器端融入自定义MIB文件。
摘要由CSDN通过智能技术生成

简介: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中。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值