VS2017编译SNMP++步骤记录
1、下载地址:https://www.agentpp.com/download.html

三个都下
2、新建解决方案 TestSnmp

3、下载后解压到解决方案文件夹(注意,解压后的 snmp++的版本号要去掉,另外 vs2013改成 vs2017)


这个 include 目录里头有几个 .h 文件,需要替换掉 snmp++ 里头对应的文件 (其中 config.h 是新增加的)
4、打开vs2017文件夹下的 README.win32 看一下步骤。
README WIN32
============ The Visual Studio 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: . libdes (or openssh)
. SNMP++
. AGENT++
. AgentX++
这里提示我们要用
vs2013\SNMP++\include\snmp_pp\config_snmp_pp.h 来替换掉 snmp++\include\snmp_pp\config_snmp_pp.h
我们可以先不删,直接将 snmp++\include\snmp_pp\config_snmp_pp.h 重命名一下为 delete_config_snmp_pp.h 即可
5、打开 vs2017文件夹删掉(AGENT++,AgentX++)两个项目,我们这里用不着。

6、在 TestSnmp解决方案上点右键添加现有项目,将 libdes 和 snmp++ 添加进来
路径分别为:
vs2017\libdes\libdes\libdes.vcxproj
vs2017\SNMP++\SNMP++\SNMP++.vcxproj

7、如果您的 windows sdk 版本不一致,需要将两个项目都进行“重定向项目”操作



项目重定向后其后的(VS Studio 2013)会消失
8、尝试一下生成 libdes(直接成功了)
9、尝试一下生成 SNMP++(出错了,提示找不到 libsnmp.h

我们在整个项目文件夹里搜索一下 libsnmp.h 文件名,发现它在\TestSnmp\snmp++文件夹里,下面将这个路径添加到 include 路径里。
在VS2017里的SNMP++ 项目上点右键 -> 属性

发现它这个路径配置有问题(是用的绝对路径)我们改一下改成【$(SolutionDir)】,然后把【$(SolutionDir)snmp++】也加进去

顺手把 C/C++ 里的附加目录也修改正确
它原来是【$(SolutionDir)\..\..\libdes】改成【$(SolutionDir)libdes】

10、再次编译snmp++项目(这次它提示无法打开包括文件: “unistd.h”)

继续在解决方案文件夹里搜一下看看,发现它在 $(SolutionDir)vs2017\SNMP++\include

将【$(SolutionDir)vs2017\SNMP++\include】加入 c/c++目录

11、再一次尝试编译 SNMP++项目

看着错误挺多,其实就只有三个主要错误【上头提示的什么 if 非法 else 之类的,想来作者不会有这么低级的错误,我们不要随便去怀疑,先把这三个明确的问题解决了说不定就跟着解决了】
1、pp_int64 标识符错误
2、inet_ntop 重定义
3、'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings SNMP++
解决办法:
1、在这里第一个错误,我们搜了一下解决方案文件内容,发现确实只有这一个地方用了 pp_int64,我们换成 int64_t 试试,发现是可以的,改了有啥后果,暂时不知道,后面我们再观察吧。
2、inet_ntop 重定义这个,我们定位到文件【IPv6Utility.h】将其屏蔽【//const char * inet_ntop(int af, const void *src, char *dst, size_t size);】
3、这个提示是 inet_ntoa 过期了,可以用 inet_ntop 或 InetNtop 代替,为了避免修改源码,我们按后面的提示,在工程属性里加 【_WINSOCK_DEPRECATED_NO_WARNINGS 】预编译项
12、再一次编译 SNMP++项目,恭喜【========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========】
13、添加测试项目【vs2017\SNMP++\snmpWalk\snmpWalk.vcxproj】,并设置为启动项,修改VC++目录

14、Ctrl + F5 运行

看来我们需要去命令行下带参数运行
15、开始 -> 运行 -> cmd 打开命令行

搞定,收工!!!!
VS2017编译SNMP++步骤记录的更多相关文章
- windows 平台使用 VS2017 编译openssl源码
windows 平台使用 VS2017 编译openssl源码 1)依赖安装 安装 perl 脚本解释器 下载 http://libevent.net/download 安装 nasm 汇编器 C:\ ...
- windows 平台使用 VS2017 编译 libevent 源码
一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...
- CentOS6-Linux内核编译 详细步骤
CentOS6-Linux内核编译 详细步骤 背景 Win10用VMwareWorkstation搭的虚拟机 CentOS6.5,内核版本2.6.32-431.el6.x86_64 在该环境下升级至4 ...
- VS2012编译Snmp++ v3.2.25
VS2012编译Snmp++ v3.2.25跟用VC6/VC2010等编译方法区别不大. 网上和教程上盛传的方式是把snmp++的cpp源文件和头文件都加到工程里,再编译.我觉得添加所有头文件到工程里 ...
- Ubuntu安装 Alisql编译安装步骤:
github地址: https://github.com/alibaba/AliSQL 一.直接git下载保存到本地: git clone https://github.com/alibaba/Ali ...
- JetSpeed2部署至Apusic操作步骤记录
JetSpeed2部署至Apusic操作步骤记录. 1.创建Apusic新域,配置端口.管理端口和管理密码. 2.将Tomcat/lib目录中的所有jar包复制至Apusic域中的lib目录中(包括数 ...
- VS2017 编译 Visual Leak Detector + VLD 使用示例
起因 一个Qt5+VS2017的工程,需要进行串口操作,在自动时发现一段时间软件崩溃了,没有保存log,在 debug 的时候发现每运行一次应用占据的内存就多一点,后来意识到是内存泄漏了.这个真是头疼 ...
- Java文件手动编译执行步骤
Java编译执行步骤: 1)将 Java 代码编写到扩展名为 .java 的文件中.2)通过 javac 命令对该 java 文件进行编译.3)通过 java 命令对生成的 class 文件进行运行. ...
- VS2017编译错误:#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version
VS2017编译错误:#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll ve ...
随机推荐
- C# System.Collections
System.collection类: 动态数组ArrayList 代表了可被单独索引的对象的有序集合.也就是说他是一个动态的数组,你可以通过索引来进行增删改等操作,数组会自动调整数组的大小.允许在列 ...
- 亲测实验,stm32待机模式和停机模式唤醒程序的区别,以及唤醒后程序入口
这两天研究了STM32的低功耗知识,低功耗里主要研究的是STM32的待机模式和停机模式.让单片机进入的待机模式和停机模式比较容易,实验中通过设置中断口PA1来响应待机和停机模式. void EXTI1 ...
- @cacheevict 清除多个key
@Caching(evict={@CacheEvict(“a1”),@CacheEvict(“a2”,allEntries=true)}): 参考:https://www.cnblogs.com/ha ...
- 为Owin项目增加WebApi
上一篇文章我们新建了一个Owin项目. 本节,我们来为其增加WebApi功能 项目右键>添加>新搭建基架的项目 选择Web API 2控制器 为默认控制器命名 点击添加后项目结构如下: 将 ...
- SpringCloud注解和配置以及pom依赖说明
在本文中说明了pom依赖可以支持什么功能,以及支持什么注解,引入该依赖可以在application.properties中添加什么配置. 1.SpringCloud 的pom依赖 序号 pom依赖 说 ...
- 利用redis 漏洞入侵挖矿临时解决办法
top 看到一个bashd的进程占据了cpu ps aux |grep bashd cd /tmp 发现ddg.2011 的文件.root dump.rdb 在/root/.ssh 也有奇怪的文件 ...
- js无间隙向上滚动
一.优点:div可以load:缺点:滚动的时候有点娘,磨磨唧唧,不够干脆爽快 html <div id="my_msg" class="my-msg bg-whit ...
- 20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结
20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目( ...
- 数据库-PLSQL登录oracle数据库卡死(未响应)解决方法
上次重装系统后重新安装了oracle和PLSQL,哪知道PLSQL登录不了,一登录就未响应,但如果不登录就不卡死,直接就进去了.在网上查了很多解决方法,都没有用. 后来在百度文库找到解决办法,重启Or ...
- SQL FOR JSON PATH 返回 json
--直接返回 age FOR JSON PATH --返回值 [{"name":"张学友","age":60}] select c1, c2 ...