win下snmp++編譯手記
snmp++
下載
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++
|– vs2013Make 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:
- libdes (or openssh)
- SNMP++
- AGENT++
- AgentX++
VS新建解決方案
修改相應的工具集(Platform Toolset
修改相應的字符集(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