Gsoap及开发框架生成:

一:gsoap下载和编译
 
2.安装:  ./configure --prefix=你的安装目录 
                make
                make install
二:在线生成onvif.h(笔者试了离线生成,各种报错,所以劝各位还是在线生成)
wsdl2h -o onvif.h -c -s -t ./typemap.dat 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/ver10/event/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/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 http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl http://www.onvif.org/onvif/ver10/analyticsdevice.wsdl http://www.onvif.org/ver10/actionengine.wsdl http://www.onvif.org/ver10/pacs/accesscontrol.wsdl http://www.onvif.org/ver10/pacs/doorcontrol.wsdl 
注:离线报错如下

1)使用wsdl2h出现    Reading file 'accesscontrol.wsdl'... 
Cannot open 'types.xsd' to retrieve schema

我这个问题是因为把onvif的 accesscontrol.wsdl 这个文件下载到本地,然后直接 wsdl2h accesscontrol.wsdl -o accesscontrol.h  出现的,我换一种做法,就是直接在wsdl2h 后面加上wsdl文件所在的URL,wsdl2h http://www.onvif.org/ver10/pacs/accesscontrol.wsdl -o accesscontrol.h 这个问题就没有啦。具体什么原因我也不知道是为什么。

如果直接生成对应C的库文件会发生重复定义错误,可以修改该文件。

wsa5.h(288): **ERROR**: remote method name clash: struct/class 'SOAP_ENV__Fault' already declared at line 274

打开文件gsoap_2.8.16/gsoap-2.8/gsoap/import/ wsa5.h

将277行int SOAP_ENV__Fault修改为int SOAP_ENV__Fault_alex

笔者没有使用这种方法,是将这个结构体直接注释的方式,最后的结果是,都可以使用。

同时上一步生成的onvif.h文件中没有打开wsse.h, 导致最后生成代码中SOAP_ENV__Header 结构体中缺少定义 wsse__Security数据段,无法进行鉴权命令。

即:添加对openssl的支持,在上一步生成的onvif.h中添加(可选)

  1. #import "wsse.h"

随后使用命令生成:

  1. soapcpp2  -c onvif.h -x -I/root/Tools/Gsoap/gsoap-2.8/gsoap/import -I/root/Tools/Gsoap/gsoap-2.8/gsoap/ -I/root/Tools/Gsoap/gsoap-2.8/gsoap/custom -I/root/Tools/Gsoap/gsoap-2.8/gsoap/extras -I/root/Tools/Gsoap/gsoap-2.8/gsoap/plugin

通过上面的两个步骤的话,onvif的基本代码框架就已经有了,里面可能有就开发而已不需要的文件,可以直接删除掉,还有一些文件需要从gsoap里面拷贝过来
        1.修改wsdd.nsmap文件名为wsdd.h,删掉其他所有的nsmap文件(rm *.nsmap),命令空间文件文件都差不多,保留一个即可,需要的时候包含此文件就好
        2.直接删除soapClientLib.c和soapServerLib.c文件,在开发过程中没有实际用处
        3.将gsoap-2.8.14/gsoap-2.8/gsoap下的stdsoap2.h和stdsoap2.c文件和gsoap-2.8.14/gsoap-2.8/gsoap/custom下的duration.cw文件都拷贝到当前目录下
        4.如果是作客户端的开发的话,则删掉soapServer.c文件,不然的话,里面调用的很多接口只是写了申明了函数原型,而没有实现,需要服务端开发来实现的,剩余客户端开发代码如下(服务端的话,多一个soapServer.c文件)
剩下有效的源码文件如下:

  1. -rwxr-xr-x 1      6560 2013-12-25 10:44 duration.c*
  2. -rw-r--r-- 1   2410694 2013-12-25 10:07 onvif.h
  3. -rw-r--r-- 1  11308204 2013-12-25 10:14 soapC.c
  4. -rw-r--r-- 1    713192 2013-12-25 10:14 soapClient.c
  5. -rw-r--r-- 1   4882158 2013-12-25 10:14 soapH.h
  6. -rw-r--r-- 1    855676 2013-12-25 10:14 soapStub.h
  7. -rwxr-xr-x 1    477042 2013-12-25 10:31 stdsoap2.c*
  8. -rwxr-xr-x 1     91109 2013-12-25 10:31 stdsoap2.h*
  9. -rw-r--r-- 1      3634 2013-12-25 10:14 wsdd.h
 

这样基本的ONVIF代码框架就已经生成完成了,如果想看一个简单的代码例子的话,可以参考这个例程

onvif开发实战1--总结框架搭建的更多相关文章

  1. onvif开发实战2--总结框架搭建

    完成框架搭建后,编写自己的主函数起onvif服务 编写makefile objs = onvif.o onvif_func.o duration.o soapC.o soapServer.o stds ...

  2. iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)   前面我们介绍了StoryBoard这个新技术,和纯技术 ...

  3. iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)   这里我们就直接上实例: 一:新建一个项目singleV ...

  4. iOS开发——实战OC篇&环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)

      环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)   研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自 ...

  5. ABP框架个人开发实战(1)_环境搭建

    前言 之前关注ABP框架有一阵子了,一直没有潜下心来实际研究一下.最近想自己建站,以后有自己的功能开发项目,可以在自己的站点上开发,并一步步的完善,所以找个比较好用的框架迫在眉睫,选来选去,决定用AB ...

  6. Spring Boot微服务电商项目开发实战 --- 基础配置及搭建

    根据SpringBoot实现分布式微服务项目近两年的开发经验,今天决定开始做SpringBoot实现分布式微服务项目的系列文章,帮助其他正在使用或计划使用SringBoot开发的小伙伴们.本次系列文章 ...

  7. Cordova+Asp.net Mvc+GIS跨平台移动应用开发实战1-系统初步搭建(附演示,apk,全部源码)

    1.前言 身处在移动互联网的今天,移动应用开发炙手可热,身为程序猿的我们怎么能错过开发一款我们自己的APP.本人算是一个基于.net的GIS开发入门者(马上就大四啦), 暑假在学校参加GIS比赛有大把 ...

  8. Go实战--通过gin-gonic框架搭建restful api服务(github.com/gin-gonic/gin)

    生命不止,继续 go go go !!! 先插播一条广告,给你坚持学习golang的理由: <2017 软件开发薪酬调查:Go 和 Scala 是最赚钱的语言> 言归正传! 之前写过使用g ...

  9. [Lua游戏AI开发指南] 笔记零 - 框架搭建

    一.图书详情 <Lua游戏AI开发指南>,原作名: Learning Game AI Programming with Lua. 豆瓣:https://book.douban.com/su ...

随机推荐

  1. Web前端之基础知识

    学习web前端开发基础技术须要掌握:HTML.CSS.Javascript 1.HTML是网页内容的载体 内容就是网页制作者放在页面上想要让用户浏览的信息,能够包括文字.图片.视频等. 2.CSS样式 ...

  2. 为什么用卷积滤波,而不是非常easy的在频率领域内进行数据的频率处理

    卷积.为了更好的"动态"滤波. 问题来了.为什么用卷积滤波.而不是非常easy的在频率领域内进行数据的频率处理? 为了强调我觉得的答案,已经用blog标题给出了.卷积.为了更好的& ...

  3. HackingTeam重磅炸弹: 估值超1000万美金带有军火交易性质的木马病毒以及远控源代码泄露

    [简单介绍] 经常使用网名: 猪头三 出生日期: 1981.XX.XX 个人站点: http://www.x86asm.com QQ交流: 643439947 编程生涯: 2001年~至今[共14年] ...

  4. Android LruCache 压缩图片 有效避免程序OOM

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9316683 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工, ...

  5. 巧用FPGA中资源

    随着FPGA的广泛应用,所含的资源也越来越丰富,从基本的逻辑单元.DSP资源和RAM块,甚至CPU硬核都能集成在一块芯片中.在做FPGA设计时,如果针对FPGA中资源进行HDL代码编写,对设计的资源利 ...

  6. Visual Studio Code Setup

    Windows https://code.visualstudio.com/docs/setup/windows Additional Components and Tools https://cod ...

  7. Armbian hostname and WiFi configuration

    In previous post i have described installation of Armbian on Orange Pi PC Plus. Now is the time for ...

  8. 用Struts2搭建一个登录例子【本人亲测好用】

    今天尝试struts2的搭建,遇到不少的问题,终于一一解决,逛了很多地方,最终完成搭建 1.首先要下载struts2的一些组件,我下载的是版本2.3.4.1,Eclipse是4.6版本的.由于版本的不 ...

  9. 将本地的代码上传到网上SVN库

    使用VisualSVN Server创建版本库: https://jingyan.baidu.com/article/db55b609f6aa724ba20a2f6c.html 最详细的教程: htt ...

  10. 原生ajax实现方式

    http://www.cnblogs.com/rubylouvre/archive/2013/01/08/2851051.html <!DOCTYPE html> <html lan ...