• 成人伦理片 gSOAP搭建ONVIF(C++)客户端开采框架--windows&ubuntu

  • 发布日期:2024-10-13 10:21    点击次数:119

    成人伦理片 gSOAP搭建ONVIF(C++)客户端开采框架--windows&ubuntu

    折腾几天成人伦理片,看了好多博客,终于弄出来了。 一: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 install
    
    2.征集需要的文献 创建目次 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 -Iimport
    
    6.创建新的目次/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下一致! 本站仅提供存储奇迹,通盘实质均由用户发布,如发现存害或侵权实质,请点击举报。