1

如何让 gsoap 为 ONVIF 和 ws-discovery 生成正确的绑定?我生成一个或另一个没有问题,但不是两者结合。

这将生成正确的 wsdiscovery 绑定:

wsdl2h -g -o wsdiscovery.h -t typemap.dat https://raw.githubusercontent.com/crrlab/TND/master/data/onvif/ws-discovery.wsdl

生成soapwsddProxy.h 和soapwsddProxy.cpp

这将生成 ONVIF 绑定,但省略了 wsdiscovery 组件。

wsdl2h -g -o wsdiscovery.h -t typemap.dat http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/event/ wsdl/event.wsdl https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl https://www.onvif.org/ver10/media/wsdl/media.wsdl https://raw.githubusercontent .com/crrlab/TND/master/data/onvif/ws-discovery.wsdl

不生成soapwsddProxy.h 和soapwsddProxy.cpp

soapcpp2 -C2Lxij -I$GSOAP/import:$GSOAP wsdiscovery.h

这与在 ONVIF wsdl 中而不是在 WS-Discovery wsdl 中定义的绑定接口有关。当存在 ONVIF 绑定声明时,wsdl2h 将停止生成 wsdiscovery 绑定。

我曾尝试分别生成它们然后组合,但这会导致各种编译器错误。

4

1 回答 1

1

将此 URL 添加到输入列表:

http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl

于 2017-09-07T00:09:48.863 回答