gSoap编译生成onvif框架代码

注意:以上操作命令是在gsoap-2.8/gsoap 路径下执行的

编译修改 typemap.dat

1. 去掉

xsd__duration = #import "custom/duration.h" | xsd__duration 前面的注释

添加如下代码:

新建一个文件夹,用于存放生成的文件

mkdir -p samples/onvif 

执行wsdl2h命令,生成onvif.h头文件(如果想生成C++代码,去掉-c即可)

 ./wsdl2h -c -x -t typemap.dat -o samples/onvif/onvif.h http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.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/search.wsdl http://www.onvif.org/onvif/ver10/display.wsdl http://www.onvif.org/onvif/ver10/deviceio.wsdl http://www.onvif.org/onvif/ver10/event/wsdl/event.wsdl http://www.onvif.org/onvif/ver10/receiver.wsdl http://www.onvif.org/onvif/ver10/recording.wsdl

生成onvif框架代码
  ./soapcpp2 -2 -x -c samples/onvif/onvif.h -Iimport

拷贝对应文件到onvif文件夹下
 cp soapC.c soapClient.c soapH.h soapStub.h wsdd.nsmap dom.c custom/duration.c custom/duration.h plugin/mecevp.c plugin/mecevp.h plugin/smdevp.c plugin/smdevp.h stdsoap2.c stdsoap2.h plugin/threads.c plugin/threads.h import/wsa5.h plugin/wsaapi.c plugin/wsaapi.h plugin/wsseapi.c plugin/wsseapi.h custom/struct_timeval.c custom/struct_timeval.h samples/onvif/

打开stdsoap2.c,添加头文件

#include "wsdd.nsmap"

至此onvif框架代码生成完成

注意:

如果出现如下错误

duration.c(61,28): error C2059: 语法错误:“<parameter-list>”

说明gsoap在编译onvif框架的时候某些地方不正确,检查wsdl的网址是否有重复,复制c或.h文件的是是否是全的,最重要的是,文章开始修改typemap.dat的地方是否漏掉

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值