gsoap生成完整的onvif骨架代码

之前只用单个remotediscovery.wsdl 文件做discovery的时候 ,用onvif测试工具测试正常,自动搜索和点对点都OK,但是生成整个onvif代码的时候发送probe发现不了设备 ,基于这个问题纠结了好久 ,用wireshark抓包也没看出个所以然来 ,后来经高人指点 ,对比单个remotediscovery.wsdl 文件生成的头文件和多个.wsdl文件生成的头文件发现生成整个框架的头文件里面少了这句  #import "soap12.h"  ,加上这句后再生成骨架代码之后就解决了

这里在叙述下生成整个骨架代码的过程 

首先生成头文件 :wsdl2h -o onvif.h -c -s -t .\typemap.dat http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/event/wsdl/event.wsdl http://www.onvif.org/onvif/ver10/display.wsdl http://www.onvif.org/onvif/ver10/deviceio.wsdl http://www.onvif.org/onvif/ver20/imaging/wsdl/imaging.wsdl http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl  http://www.onvif.org/onvif/ver10/receiver.wsdl http://www.onvif.org/onvif/ver10/recording.wsdl  http://www.onvif.org/onvif/ver10/search.wsdl http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl http://www.onvif.org/onvif/ver10/replay.wsdl http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl http://www.onvif.org/onvif/ver10/analyticsdevice.wsdl  http://www.onvif.org/onvif/ver10/schema/onvif.xsd  http://www.onvif.org/ver10/actionengine.wsdl  typemap.dat根据你自己文件路径填写,还有WINDOWS下文件目录是“\”linux下文件目录是“/”, 可能不能一次成功 ,我试了很多次 ,提示经常出现http的握手不成功 ,还有其他的提错误,这个是网络问题 ,多试几次,不需要改typemap.dat文件 能成功的

生成骨架代码: soapcpp2 -c onvif.h -x -I /root/onvif/gsoap-2.8/gsoap/import -I /root/onvif/gsoap-2.8/gsoap/ 这些当然要根据你的文件路径,生成骨架代码后会报错 :1 semantic error  这个没有影响  ,然后拷贝gsoap/cunstom/ 下的duration.c 和duration.h到你的工程 ,编译可能出现重复定义函数的错误,注释多余的,编译就能通过了 ,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值