linux 下gsoap编译Onvif, gsoap “undefined reference to `namespaces‘“

1.安装gsoap

sudo apt install gsoap libgsoap-dev

2.下载(onvif官网下载)

wsdlonvif编译流程-互联网文档类资源-优快云下载

3.生成onvif.h

编辑typedef.dat, 去掉改行注释:

xsd__duration = #import "custom/duration.h" | xsd__duration

wsdl2h -o onvif.h -t /usr/share/gsoap/WS/typemap.dat ./wsdl/accesscontrol.wsdl ./wsdl/accessrules.wsdl ./wsdl/actionengine.wsdl ./wsdl/advancedsecurity.wsdl ./wsdl/analytics.wsdl ./wsdl/analyticsdevice.wsdl ./wsdl/appmgmt.wsdl ./wsdl/authenticationbehavior.wsdl ./wsdl/bw-2-vs-mod.wsdl ./wsdl/credential.wsdl ./wsdl/deviceio.wsdl ./wsdl/devicemgmt.wsdl ./wsdl/display.wsdl ./wsdl/display2.wsdl ./wsdl/doorcontrol.wsdl ./wsdl/event.wsdl ./wsdl/event-vs.wsdl ./wsdl/federatedsearch.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/security.wsdl ./wsdl/thermal.wsdl ./wsdl/uplink.wsdl ./wsdl/remotediscovery.wsdl

4.onvif.h添加引用

add #import "wsse.h" in the onvif.h

5.修改wsa5.h

修改/usr/share/gsoap/import/wsa5.h文件,将int SOAP_ENV__Fault修改为int SOAP_ENV__Fault_alex

6.生成cpp和h

mkdir onvif (创建文件夹)

soapcpp2 -2 -L -x -i -I/usr/share/gsoap -I/usr/share/gsoap/import -I/usr/share/gsoap/custom -d./onvif onvif.h

7.gsoap "undefined reference to `namespaces'"

需要增加namespace.cpp,内容为 #include "DeviceBinding.nsmap"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值