折腾几天成人伦理片,看了好多博客,终于弄出来了。 一:gSOAP搭建ONVIF (C++)客户端开采框架 --windows 二:gSOAP搭建ONVIF (C++)客户端开采框架 --linux
1. gSOAP器具下载gSOAP里边的soapcpp2.exe和wsdl2.exe的版块是对应的 gSOAP下载
图片成人伦理片
2.征集需要的文献 创建目次F:\onvifFrameworkC将F:\gsoap_2.8.112\gsoap-2.8\gsoap下的plugin,import,custom复制到F:\onvifFrameworkC换将wsdl2h.exe和soapcpp2.exe复制到F:\onvifFrameworkC目次下将F:\gsoap_2.8.112\gsoap-2.8\gsoap下的stdsoap2.cpp,stdsoap2.h,dom.cpp复制到F:\onvifFrameworkC将F:\gsoap_2.8.112\gsoap-2.8\gsoap下的typemap.dat复制到F:\onvifFrameworkC以后的通盘操作王人在目次F:\onvifFrameworkC进行
3.修改一些文献 防护出现LONG64的极度和'SOAP_TYPE_xsd__duration’ was not declared in this scope极度,需要在typemap.dat中# xsd__duration = #import "custom/duration.h" | xsd__duration 改成 xsd__duration = #import "custom/duration.h" | xsd__duration防护SOAP_ENV__Fault重叠极度,修改F:\onvifFrameworkC\import下边的wsa5.h。这里把SOAP_ENV__Fault的名字改了
图片
4.生成onvif.h(1)需要的wsdl文献和xsd文献http,每个用空格离隔。 windows下边的wsdl2h.exe不复旧HTTPS下载,是以使用HTTP
wsdl2h -x -t typemap.dat -o 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
(2)翻开CMD,输入大喊cd /d F:\onvifFrameworkC再输入上边这个大喊获得onvif.h。
图片
此时会产生一个onvif.h文献,这个文献很大。 (3)因鉴权需要,修改onvif.h头文献,在onvif.h中添加#import "wsse.h"
图片
此时F:\onvifFrameworkC下有这些文献图片
5.使用gSOAP生成onvif开采框架代码soapcpp2 大喊如下
soapcpp2 -2 -x -C onvif.h -L -Iimport
图片
此时F:\onvifFrameworkC下有这些文献图片
6.创建新的目次F:\onvifApi放onvif开采框架的代码(1)gSOAP生成的文献中提真金不怕火以下几个放到F:\onvifApi
soapC.cpp soapClient.cpp soapH.h soapStub.h wsdd.nsmap
(2)再提真金不怕火以下几个放到F:\onvifApi
dom.c dom.h duration.cpp duration.h mecevp.c mecevp.h smdevp.c smdevp.h stdsoap2.c stdsoap2.h threads.c threads.h wsa5.h wsaapi.c wsaapi.h wsseapi.c wsseapi.h struct_timeval.h struct_timeval.c
(3)把里边通盘的c改为cpp。有的文献既有C也有CPP,在F:\onvifApi中只保留cpp 修改stdsoap2.cpp文献,添加#include "wsdd.nsmap"
图片
在soapStub.h文献中,列出了WEB奇迹的通盘接口(Client-Side Call Stub Functions),咱们的期骗尺度通过调用这些接口就成了,至于SOAP公约通盘这个词经过怎么竣事的,王人在soapC.c和soapClient.c中。 7.考据在VS2017中创建新工程,添加目次,并把F:\onvifApi通盘文献加入到工程。
图片
(1)因为文献太大,需要添加/bigobj
图片
(2)在预搞定器中添加 _CRT_SECURE_NO_WARNINGS图片
(3)出现极度 C1083 无法翻开包括文献: “openssl/evp.h”: No such file or directory
图片
这是因为鉴权需要OPEN-SSL复旧。 选拔Win32图片
这里装置好以后把目次和库添加到神志缔造,(平台不错看到是win32是以开采的尺度是Win32)图片
预搞定器添加WITH_OPENSSL 运动器的输入添加libcrypto.lib,libssl.lib (4)图片
这是因为莫得添加struct_timeval.cpp和struct_timeval.h,把两个文献添加到F:\onvifApi目次,况兼加入到工程。 (5)图片
这是因为莫得添加duration.cpp和duration.h,把两个文献添加到F:\onvifApi目次,况兼加入到工程。 竣工的工程目次如下:图片
此时编译不错通过且不错F11参加soap_new()单门径试。
图片
到此,大工班师!主要鉴戒:https://blog.csdn.net/weixin_44517656/article/details/115120199 https://blog.csdn.net/benkaoya/article/details/72424335
一:编译gSoapg(1)装置依赖库
sudo apt-get install bison sudo apt-get install flex sudo apt-get install openssl
(2)gSoapg源码下载https://sourceforge.net/projects/gsoap2/
(3)编译:复旧鉴权。
cd gsoap-2.8/ sudo ./configure --with-openssl=/usr/local/OpenSSL sudo make sudo make install2.征集需要的文献 创建目次 mkdir /home/usr/onvif将gsoap_2.8.112/gsoap-2.8/gsoap下的plugin,import,custom复制到/home/usr/onvif换将wsdl2h和soapcpp2复制到/home/usr/onvif目次下将gsoap_2.8.112/gsoap-2.8/gsoap下的stdsoap2.cpp,stdsoap2.h,dom.cpp复制到/home/usr/onvif将gsoap_2.8.112/gsoap-2.8/gsoap下的typemap.dat复制到/home/usr/onvif
以后的通盘操作王人在目次/home/usr/onvif进行
3.修改一些文献 防护出现LONG64的极度和'SOAP_TYPE_xsd__duration’ was not declared in this scope极度,需要在typemap.dat中# xsd__duration = #import "custom/duration.h" | xsd__duration 改成 xsd__duration = #import "custom/duration.h" | xsd__duration防护SOAP_ENV__Fault重叠极度,修改F:\onvifFrameworkC\import下边的wsa5.h。这里把SOAP_ENV__Fault的名字改了
图片
4.生成onvif.h(1)wsdl下载大喊。
./wsdl2h -x -t typemap.dat -o 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
(2)此时会产生一个onvif.h文献,这个文献很大。 因鉴权需要,修改onvif.h头文献,在onvif.h中添加
#import "wsse.h"5.使用gSOAP生成onvif开采框架代码
./soapcpp2 -2 -x -C onvif.h -L -Iimport6.创建新的目次/home/usr/onvif_dev放onvif开采框架的代码
(1)gSOAP生成的文献中提真金不怕火以下几个放到/home/usr/onvif_dev,其他的文献一说念断念
soapC.cpp soapClient.cpp soapH.h soapStub.h wsdd.nsmap
(2)再提真金不怕火以下几个放到/home/usr/onvif_dev
a片 男同dom.c dom.h duration.cpp duration.h mecevp.c mecevp.h smdevp.c smdevp.h stdsoap2.c stdsoap2.h threads.c threads.h wsa5.h wsaapi.c wsaapi.h wsseapi.c wsseapi.h struct_timeval.h struct_timeval.c
(3)把里边通盘的c改为cpp。有的文献既有C也有CPP,在/home/usr/onvif_dev中只保留cpp (4)修改stdsoap2.cpp文献,添加#include "wsdd.nsmap"
图片
在soapStub.h文献中,列出了WEB奇迹的通盘接口(Client-Side Call Stub Functions),咱们的期骗尺度通过调用这些接口就成了,至于SOAP公约通盘这个词经过怎么竣事的,王人在soapC.c和soapClient.c中。 到此, ubuntu环境下的onvif搭建告捷,身手基本和windows下一致! 本站仅提供存储奇迹,通盘实质均由用户发布,如发现存害或侵权实质,请点击举报。