码迷,mamicode.com
首页 > 其他好文 > 详细

生成snmp++动态库

时间:2019-11-18 18:44:32      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:头文件   ips   工作   linu   tor   ntp   image   编译   read   

一、准备工作:

1、下载SNMP++ 3.3.11a

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

技术图片

 

2、下载libdes

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

技术图片

 

二、QT生成动态库.so

编译工具:

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

 技术图片

 

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

 技术图片

 

3、选择交叉编译器

 技术图片

4、模块选择

 技术图片

 

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

 技术图片

 

 

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

 技术图片

 

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

 技术图片

 

8、编译出现以下错误

 技术图片

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

 技术图片

 

8、重新编译出现错误

 技术图片

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

 技术图片

 

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

 技术图片

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

 技术图片

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

 技术图片

 

 

三、eclipse CDT生成.so动态库

编译工具:Linux GCC

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

 技术图片

 

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

 技术图片

 

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

 技术图片

 

4、编译后出现错误

 技术图片

解决方法:参考上文第9

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

 技术图片

四、使用注意事项

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

 技术图片

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

生成snmp++动态库

标签:头文件   ips   工作   linu   tor   ntp   image   编译   read   

原文地址:https://www.cnblogs.com/qjswxd/p/11870554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!