本文讲述了如何在Centos7上编译生成onvif C++框架,具体流程如下:
1、从gSoap官网下载gSoap(笔者用的是gSoap_2.8.106)。下载open source edition版本。请提前安装好openssl
$ cd gsoap-2.8
$ ./configure --with-openssl=/usr/local/ssl
$ make
$ make install
若编译失败,可以修改gsoap-2.8/gsoap/wsdl下的Makefile,在278-279行加上-ldl
2、从onvif官网下载wsdl文件以及相关配置文件:https://www.onvif.org/ch/profiles/specifications/
(1)建议下载所有的wsdl以及相关的xsd文件(右键链接另存为即可下载文件),然后修改其中的schemaLoaction以及部分location字段,将相对路径修改为http地址,否则生成onvif.h文件时会报错。
(2)将gsoap目录下的typemap.dat拷贝到新建目录下,并修改typemap.dat:将这一行代码注释取消 xsd__duration = #import “custom/duration.h” | xsd__duration
(3)然后执行以下命令:
wsdl2h -o onvif.h -t ./typemap.dat accesscontrol.wsdl accessrules.wsdl actionengine.wsdl advancedsecurity.wsdl analytics.wsdl authenticationbehavior.wsdl credential.