gsoap + onvif编译

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * gsoap onvif客户端功能开发* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

1。编译ssl,其中安装目录会被gsoap编译时用到
见17行

2。gsoap
解压gsoap_2.8.34。邮政
。/配置——使用openssl=/home/灌/x86/openssl-install (此为openssl安装目录)如果为手臂,还需要——主机=

sudo make install

3。gsoap/进口/wsa5。h注销277行int SOAP_ENV__Fault定义

4。修改gsoap/typemap。dat
使用gSOAP 2.8.10或更大。typemap。dat文件wsdl2h所使用,添加以下如果不是已经有:

#,,ONVIF推荐前缀
tds=" http://www.onvif.org/ver10/device/wsdl "
tev=" http://www.onvif.org/ver10/events/wsdl "
tls=" http://www.onvif.org/ver10/display/wsdl "
tmd=" http://www.onvif.org/ver10/deviceIO/wsdl "
timg ,,,,,,=" http://www.onvif.org/ver20/imaging/wsdl "
泰爱泰党=" http://www.onvif.org/ver10/media/wsdl "
tptz ,,,,,,=" http://www.onvif.org/ver20/ptz/wsdl "
和=" http://www.onvif.org/ver10/receiver/wsdl "
继续=" http://www.onvif.org/ver10/recording/wsdl "
谢霆锋=" http://www.onvif.org/ver10/search/wsdl "
trp=" http://www.onvif.org/ver10/replay/wsdl "
棕褐色=" http://www.onvif.org/ver20/analytics/wsdl "
泰德=" http://www.onvif.org/ver10/analyticsdevice/wsdl "
tdn=" http://www.onvif.org/ver10/network/wsdl "
tt =" http://www.onvif.org/ver10/schema "
#,,绿洲推荐前缀
wsnt ,,,,,,=" http://docs.oasis-open.org/wsn/b-2 "
wsntw ,,,,,=" http://docs.oasis-open.org/wsn/bw-2 "
wsrfbf ,,,,=" http://docs.oasis-open.org/wsrf/bf-2 "
wsrfr ,,,,,=" http://docs.oasis-open.org/wsrf/r-2 "
wsrfrw =" http://docs.oasis-open.org/wsrf/rw-2 "
wstop ,,,,,=" http://docs.oasis-open.org/wsn/t-1 "
#,,WS-Discovery 1.0重新映射
wsdd10__HelloType ,,,,,,,,,=| wsdd__HelloType
wsdd10__ByeType ,,,,,,,,,,,,,,,,,,,=| wsdd__ByeType
wsdd10__ProbeType ,,,,,,,,,=| wsdd__ProbeType
wsdd10__ProbeMatchesType ,,=| wsdd__ProbeMatchesType
wsdd10__ProbeMatchType ,,,,,,,,,,,,=| wsdd__ProbeMatchType
wsdd10__ResolveType ,,,,,,,=| wsdd__ResolveType
wsdd10__ResolveMatchesType =| wsdd__ResolveMatchesType
wsdd10__ResolveMatchType ,,=| wsdd__ResolveMatchType
#,,SOAP-ENV映射
SOAP_ENV__Envelope =struct SOAP_ENV__Envelope {struct SOAP_ENV__Header * SOAP_ENV__Header;_XML SOAP_ENV__Body存放;};| struct SOAP_ENV__Envelope
SOAP_ENV__Header ,,=| struct SOAP_ENV__Header
SOAP_ENV__Fault ,,,,,,,,,,,=| struct SOAP_ENV__Fault
SOAP_ENV__Detail ,,=| struct SOAP_ENV__Detail
SOAP_ENV__Code ,,,,,,,,,,,,=| struct SOAP_ENV__Code
SOAP_ENV__Subcode ,=| struct SOAP_ENV__Subcode
SOAP_ENV__Reason ,,=| struct SOAP_ENV__Reason

4. onvif。h生成
typedamp副本。dat到命令所在目录
wsdl2h - p -x - t。/typemap。dat - o onvif。h http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl http://www.onvif.org/onvif/ver10/events/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
注意:注意规范是实质性的大小。选择wsdl2h - p删除不必要的类层次结构的依赖性xsd__anyType根类型。这个选项将会减少代码的大小。wsdl2h - x选项删除可扩展性元素(xsd: anyAttribute属性和xsd:任何元素)。如果需要扩展一个complexType属性和元素,然后使用typemap。dat文件来添加这些额外的可选的成员。例如,延长tt__AudioDecoderConfigurationOptionsExtension complexType类的一个元素的地址类型tt: typemap IPAddress,然后添加。null

gsoap + onvif编译