显示标签为“net-snmp”的博文。显示所有博文
显示标签为“net-snmp”的博文。显示所有博文

2008年12月29日星期一

ini文件解析例子

1.主程序:demo.c

#include
#include
#include
#include
#include

main(int argc,char *argv[])
{
dictionary * ini;
char * ini_name;

if(argc<2) {
ini_name = "demo.ini";
} else {
ini_name = argv[1];
}

ini = iniparser_load(ini_name);
iniparser_dump(ini,stdout);
iniparser_freedict(ini);

return 0;

}

2.Makefile文件
iniparser tests Makefile
#

CC = gcc
CFLAGS = -g -I./src
LFLAGS = -L.. -liniparser
SRC = -I./src
AR = ar
ARFLAGS = rcv
RM = rm -f


default: all

all: demo


demo: demo.c
$(CC) -g -I./src -o demo demo.c -I./src -L.. -liniparser


clean veryclean:
$(RM) demo


3.ini 文件:demo.ini

[bvcom]
t1 = 1
t2 = 2
t3 = 3

4.建立src文件夹:
下有四个文件:dictionary.c dictionary.h iniparser.c iniparser.h
在http://ndevilla.free.fr/iniparser/ 可下载得到

5.编译运行:
slg@slg-desktop:~/snmpan/testing$ ls
demo.c demo.ini Makefile src
slg@slg-desktop:~/snmpan/testing$ make
gcc -g -I./src -o demo demo.c -I./src -L.. -liniparser
slg@slg-desktop:~/snmpan/testing$ ls
demo demo.c demo.ini Makefile src
slg@slg-desktop:~/snmpan/testing$ sudo ./demo
[sudo] password for slg:
[bvcom]=UNDEF
[bvcom:t1]=[1]
[bvcom:t2]=[2]
[bvcom:t3]=[3]

cross compile net snmp for mips(转自boeder)

cross compile net snmp for mips

By: Bian Jiang (borderj@gmail.com)
From: http://www.b0rder.com
Date: 2008.11.17

I'm trying to cross-compile NetSNMP 5.4.2 for running on an embedded system(mips).

由于我使用的CPU是little endian 交叉编译工具是 mipsel-linux

如果你用的是Big endian,交叉编译用具就可能是 mips-linux

1. 设置环境变量::

TOOLCHAIN=mipsel-linux-
CC=${TOOLCHAIN}gcc
CPP=${TOOLCHAIN}cpp
AR=${TOOLCHAIN}ar
STRIP=${TOOLCHAIN}strip
RANLIB=${TOOLCHAIN}ranlib
LD=${TOOLCHAIN}ld

2. 编译安装::

../net-snmp-5.4.2.1/configure --build=i686-linux --host=mipsel-linux --target=mipsel-linux --with-transports="UDP" --prefix=/opt/rootfs/snmp --with-endianness=little --with-persistent-directory=/var/net-snmp/ --with-default-snmp-version="2" --enable-mini-agent --without-kmem-usage --disable-debugging --disable-embedded-perl --without-perl-modules

make
make install

PS:
1. 如果你采用的是 Big endian, --with-endianness=little 应该改为 --with-endianness=big
2. 如果不想对openssl 的支持,用 --without-openssl

3. 测试::

border@ubuntu:/opt/rootfs/snmp/sbin$ pwd
/opt/rootfs/snmp/sbin
border@ubuntu:/opt/rootfs/snmp/sbin$ file snmpd
snmpd: ELF 32-bit LSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
border@ubuntu:/opt/rootfs/snmp/sbin$ file snmptrapd
snmptrapd: ELF 32-bit LSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), not stripped


参考:
1. http://fixunix.com/snmp/175765-multiple-warning-cross-compiling-net-snmp-mips-linux.html
2. http://mhonarc.axis.se/dev-etrax/msg09220.html

--Bian Jiang

--EOF--