win下snmp++编译手记

来源:互联网 发布:h3c 禁止mac 编辑:程序博客网 时间:2024/05/16 06:54

转载注明原出处
http://blog.csdn.net/yp541118319/article/details/65628175

snmp++

下载

http://www.agentpp.com/download.html#SNMP_PP

SNMP++ 3.3.7
LIBDES-l-4.01a
MS VC++ 12 Project Files for SNMP++ 3.3.1/AGENT++ 4.0.2 or later

解压参考

README WIN32

The Visual Studio 2013 project files require that the libdes, SNMP++,
AGENT++, and/or AgentX++ sources are extracted in the same directory
as the Visual Studio project files. The directory structure should
then look like (note: there must not be any version numbers in the
directory names):

common-root-dir |– libdes |– snmp++ |– agent++ |– agentx++
|– vs2013

Make sure, that you delete the file config_snmp_pp.h from the
snmp++\include\snmp_pp directory. Otherwise, the linked programs crash
on execution, because the different projects might have used different
versions of the config_snmp_pp.h file.

The file with the right (default) settings for the WIN32 platform is
located in vs2013\SNMP++\include\snmp_pp and included from there by
the VS project files.

To build the libraries, use this order:

  1. libdes (or openssh)
  2. SNMP++
  3. AGENT++
  4. AgentX++

VS新建解决方案

修改相应的工具集(Platform Toolset),VS2013–v120,VS2010–v100
修改相应的字符集(Character Set),Use Multi-Byte Character Set

增加预处理宏

HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;

增加头文件目录

$(SolutionDir)\..\..\snmp++\include;$(SolutionDir)\..\..\snmp++;$(SolutionDir)\..\..\libdes;

包含文件

<ClInclude Include="..\..\..\snmp++\include\libsnmp.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\address.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\asn1.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\auth_priv.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\collect.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\config_snmp_pp.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\counter.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\ctr64.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\eventlist.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\eventlistholder.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\gauge.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\idea.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\integer.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\IPv6Utility.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\log.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\md5.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\mp_v3.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\msec.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\msgqueue.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\notifyqueue.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\octet.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\oid.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\oid_def.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\pdu.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\reentrant.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\sha.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\smi.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\smival.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\snmperrs.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\snmpmsg.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\snmp_pp.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\target.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\timetick.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\usm_v3.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\uxsnmp.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\v3.h" /><ClInclude Include="..\..\..\snmp++\include\snmp_pp\vb.h" /><ClInclude Include="..\include\config.h" /><ClCompile Include="..\..\..\snmp++\src\address.cpp" /><ClCompile Include="..\..\..\snmp++\src\asn1.cpp" /><ClCompile Include="..\..\..\snmp++\src\auth_priv.cpp" /><ClCompile Include="..\..\..\snmp++\src\counter.cpp" /><ClCompile Include="..\..\..\snmp++\src\ctr64.cpp" /><ClCompile Include="..\..\..\snmp++\src\eventlist.cpp" /><ClCompile Include="..\..\..\snmp++\src\eventlistholder.cpp" /><ClCompile Include="..\..\..\snmp++\src\gauge.cpp" /><ClCompile Include="..\..\..\snmp++\src\idea.cpp" /><ClCompile Include="..\..\..\snmp++\src\integer.cpp" /><ClCompile Include="..\..\..\snmp++\src\IPv6Utility.cpp" /><ClCompile Include="..\..\..\snmp++\src\log.cpp" /><ClCompile Include="..\..\..\snmp++\src\md5c.cpp" /><ClCompile Include="..\..\..\snmp++\src\mp_v3.cpp" /><ClCompile Include="..\..\..\snmp++\src\msec.cpp" /><ClCompile Include="..\..\..\snmp++\src\msgqueue.cpp" /><ClCompile Include="..\..\..\snmp++\src\notifyqueue.cpp" /><ClCompile Include="..\..\..\snmp++\src\octet.cpp" /><ClCompile Include="..\..\..\snmp++\src\oid.cpp" /><ClCompile Include="..\..\..\snmp++\src\pdu.cpp" /><ClCompile Include="..\..\..\snmp++\src\reentrant.cpp" /><ClCompile Include="..\..\..\snmp++\src\sha.cpp" /><ClCompile Include="..\..\..\snmp++\src\snmpmsg.cpp" /><ClCompile Include="..\..\..\snmp++\src\target.cpp" /><ClCompile Include="..\..\..\snmp++\src\timetick.cpp" /><ClCompile Include="..\..\..\snmp++\src\usm_v3.cpp" /><ClCompile Include="..\..\..\snmp++\src\uxsnmp.cpp" /><ClCompile Include="..\..\..\snmp++\src\v3.cpp" /><ClCompile Include="..\..\..\snmp++\src\vb.cpp" />

修改代码

    //auth_priv.cpp(855) 修改    if (add_auth(new /*AuthSHA*/AuthMD5()) != SNMP_ERROR_SUCCESS)    //log.h(38)增加    #include <string.h>    //config_snmp_pp.h(74) 修改    #if 0    #define HAVE_LIBSSL 1    #endif    #if 0    #define HAVE_LIBTOMCRYPT 1    #endif    #if 1    #define HAVE_LIBDES 1    #endif    #if 0    #define HAVE_PTHREAD 1    #endif

拷贝文件

源 \vs2013\SNMP++\include \config.h
源 \snmp++\libsnmp.h
目标目录 \snmp++\include\

使用lib

预定义宏

#define HAVE_CONFIG_H

头文件目录

$(SolutionDir)\include;$(SolutionDir)\..\..\libdes;$(SolutionDir)\..\..\snmp++\include;

头文件

#include <libsnmp.h>#include "snmp_pp/snmp_pp.h"

依赖库目录

$(SolutionDir)\..\libdes\$(Configuration);$(SolutionDir)\$(Configuration);%(AdditionalLibraryDirectories)

添加依赖库

libdes.lib;SNMP++.lib;Ws2_32.lib;

附:libdes

VS新建解决方案

修改相应的工具集(Platform Toolset),VS2013–v120,VS2010–v100
修改相应的字符集(Character Set),Use Multi-Byte Character Set

直接编译即可使用

0 0