生成snmp++动态库

一、准备工作:

1、下载SNMP++ 3.3.11a

下载地址:https://www.agentpp.com/download.html

生成snmp++动态库

 

2、下载libdes

下载地址:https://www.agentpp.com/download.html

生成snmp++动态库

 

二、QT生成动态库.so

编译工具:

1、打开虚拟机,用QtCreator新建一个”C++ Library”项目

 生成snmp++动态库

 

2、选择共享库,填上动态库名字

 生成snmp++动态库

 

3、选择交叉编译器

 生成snmp++动态库

4、模块选择

 生成snmp++动态库

 

5、删除新建项目时自动产生的.cpp和.h文件;在项目文件中新建src,把下载的SNMP++ 3.3.11a中src文件夹的.cpp文件复制到新建项目的src中,并把新添加的文件添加到项目中

 生成snmp++动态库

 

 

6、同理把SNMP++ 3.3.11a中的Include文件夹和libdes文件夹复制到项目目录中,Include文件夹除了.cpp和.h外其他文件删除,libdes文件夹中的文件可以不删除,重复上述步骤添加.cpp、.c和.h文件到项目中去。

 生成snmp++动态库

 

7、删除自动生成文件后记得修改.pro文件中的内容,文件目录和.pro如下如所示

 生成snmp++动态库

 

8、编译出现以下错误

 生成snmp++动态库

解决方法:把SNMP++ 3.3.11a中的libsnmp.h复制到项目文件下

 生成snmp++动态库

 

8、重新编译出现错误

 生成snmp++动态库

解决方法:在.pro下添加头文件路径

 生成snmp++动态库

 

9、重新编译,出现以下错误

 生成snmp++动态库

解决方法:因我们使用的是libdes库,找到config_snmp_pp.h,在74行处修改为下图所示,若定义了HAVE_PTHREAD就添加pthread库

 生成snmp++动态库

10、编译成功,可以在构建目录中看见生成.so动态库

 生成snmp++动态库

 

 

三、eclipse CDT生成.so动态库

编译工具:Linux GCC

1、新建工程,File->New->C++ Project

 生成snmp++动态库

 

2、把.cpp、.c和.h文件和libsnmp.h添加到项目目录下,其他后缀文件可以删除,刷新一下项目后可以看见新添加的目录与文件

 生成snmp++动态库

 

3、添加头文件路径,右键项目名->Properties->C/C++ General->Paths and Symbols->Includes->GNU C++

 生成snmp++动态库

 

4、编译后出现错误

 生成snmp++动态库

解决方法:参考上文第9点

5、编译成功,在Debug目录下生成.so文件

 生成snmp++动态库

四、使用注意事项

使用时可能会出现以下错误

 生成snmp++动态库

原因是msec类里面存在一个静态私有成员,要对其初始化。

上一篇:华为、华三 交换机 开启SNMP 简单网络管理协议


下一篇:python pysnmp使用getbulk中的oid列表