windows通过gsoap生成onvif源代码

1、下载gsoap      

   官网下载地址:     https://sourceforge.net/projects/gsoap2

2、下载wsdl文件

     网址:https://www.onvif.org/profiles/specifications/ 

    下面这些文件右键下载:

    

 

   把红框的文件放到一个叫wsdl的文件夹下。鼠标右键另存为就可以了。

   

 

 去gsoap解压出来的文件夹下,找到这两个文件,放到跟wsdl同级目录

 

   

 

 

  这个文件同样放到wsdl的同级目录下。

 

  用notepad++ 打开所有的wsdl文件,搜索  schemaLocation 把.xsd文件的路径重新配置下,因为我们现在放到的是同一级,直接是同一级目录,这个要把所有的文件都改掉,如下图:

 

 

 

cmd进入wsdl文件夹的上一级执行:

  wsdl2h -t typemap.dat -o onvif.h ./wsdl/accesscontrol.wsdl ./wsdl/accessrules.wsdl ./wsdl/actionengine.wsdl ./wsdl/advancedsecurity.wsdl ./wsdl/analytics.wsdl ./wsdl/appmgmt.wsdl ./wsdl/authenticationbehavior.wsdl ./wsdl/credential.wsdl ./wsdl/deviceio.wsdl ./wsdl/devicemgmt.wsdl ./wsdl/display.wsdl ./wsdl/doorcontrol.wsdl ./wsdl/event.wsdl ./wsdl/imaging.wsdl ./wsdl/media.wsdl ./wsdl/media2.wsdl ./wsdl/provisioning.wsdl ./wsdl/ptz.wsdl ./wsdl/receiver.wsdl ./wsdl/recording.wsdl ./wsdl/replay.wsdl ./wsdl/schedule.wsdl ./wsdl/search.wsdl ./wsdl/thermal.wsdl ./wsdl/uplink.wsdl

 

这个执行完可能会报错, cannot find 文件夹什么的,看最后执行哪个文件,打开这个文件,搜索下找不到的文件名字,去相应的网站就下载就行了。(我这把cmd窗口不小心关掉了,没截图)要学会读错误信息,然后跟上面配置xsd文件一样。

补充一点: ws-addr.xsd需要到https://www.w3.org/2005/08/addressing/下载,还有几个.wsdl和.xsd的文件需要到http://docs.oasis-open.org/wsn下载,会有这个报错信息。

 

最后显示为这样是成功的:

To complete the process, compile with

: > soapcpp2 onvif.h

or to generate C++ proxy and object classes:

> soapcpp2 -j onvif.h

 

 

在当前路径下生成了一个名为onvif.h的文件,打开它,增加#import "wsse.h" 如下图:

 

 

然后执行:soapcpp2 -j -2 -x onvif.h -I./gsoap-2.8/gsoap/import -I./gsoap-2.8/gsoap/

后面的两个目录 前面一个是到gsoap的import层

                           后面一个到gsoap的import的上一层

目录不对会报错:

   

 

 成功以后是这样的:

 

 

我的目录层次以及生成出来的源文件:

 

 

 

                          

  

 

 

 

   

 

posted @ 2020-04-10 19:37  HappyCoder_1  阅读(591)  评论(0编辑  收藏  举报