Linux下Gsoap安装;利用Gsoap工具生成ONVIF框的c架

来源:互联网 发布:包小三选股软件 编辑:程序博客网 时间:2024/05/16 13:01

生成符合本计算机配置特性的Gsoap工具步骤:
        1、下载Gsoap工具源码;
        2、解压源码,并进入源码包;
        3、执行.config
                $sudo make distclean
                $sudo ./configure--host=arm-linux --prefix=/qfh/gsoap/target --enable-samples
                $sudo make
                $sudo make install
                说明:--prefix:指定软件预安装的位置,如果不是arm或其他平台,则不用配置,按默认即可
                    。--host:指定生成Gsoap工具的编译器(在pc上面执行的,则默认的就可以,即不用配
                    置--host选项($sudo./configure --host=arm-linux -prefix=/qfh/gsoap/target
                    --enable-samples))。
        4、执行完上面的步骤后,可以在/qfh/gsoap/target的bin目录下看到所需要的Gsoap工具(soapcpp2、      

           wsdl2h).

生成ONVIF源码:
   联网生成onvif.h源码:

        1、将上面生成的soapcpp2 和 wsdl2h拷贝到ONVIF工程目录里面,同时也将Gsoap源码包里面Gsoap包       

           和typemap.dat 拷进同一级目录中.
        2、拷贝http://www.onvif.org/onvif/ver20/util/operationIndex.html网站里面对应模块的wsdl地址
           到记事本。
        3、生成 onvif.h :进入 ONVIF工程目录 ,执行

                $sudo ./wsdl2h -oonvif.h -c -t typemap.dat                                
                http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
                http://www.onvif.org/onvif/ver10/deviceio.wsdl
                http://www.onvif.org/onvif/ver10/event/wsdl/event.wsdl
                http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl
                http://www.onvif.org/onvif/ver10/analyticsdevice.wsdl
                http://www.onvif.org/onvif/ver10/display.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... emotediscovery.wsdl
                http://www.onvif.org/onvif/ver10/Recording.wsdl
                http://www.onvif.org/onvif/ver10/Replay.wsdl
                http://www.onvif.org/onvif/ver10/Search.wsdl

       注意:a.wsdl链接都要用空格隔开。b.如果网络不给力生成onvif.h可能会失败,失败后可以再次执行
               上面的命令。c. 成功的生产的onvif.h文件大小会 达到M以上。
利用onvif.h生成 Gsoap框架 Onvif源码:
        1、首先在上面生成的onvif.h中加入#import"wsse.h"用来做安全验证;
        2、屏蔽 wsa5.h中的 int SOAP_ENV__Fault函数,否则会编译错误;
        3、执行
                $sudo soapcpp2 -2 -c -x-L -I./import -I./gsoap
        4、即可生成Gsoap框架的ONVIF的c源码.
工程所需的源码
        1、任意*.namsp文件
        2、soapC.c;
        3、soapH.h;
        4、soapStub.h;
        5、soapClient.c;----仅客户端需要
        6、soapServer.c;----仅服务端需要
        7、stdsoap2.c;------在gsoap源码包里
        8、stdsoap2.h;------在Gsoap源码包里
        9、duration.c;------在gsoap/custom里
        10、duration.h;-----在Gsoap/custom里
       
wsdl2h解析器选项介绍:(利用wsdl文件生成对应的h文件)
        -o 文件名,指定输出头文件
        -n 名空间前缀代替默认的ns
        -c 产生纯C代码,否则是C++代码
        -s 不要使用STL代码
        -t 文件名,指定type map文件,默认为typemap.dat

soapcpp2编译器选项介绍(利用h文件生成c/cpp源码)
        -C 仅生成客户端代码
        -S 仅生成服务器端代码
        -L 不要产生soapClientLib.c和soapServerLib.c文件
        -c 产生纯C代码,否则是C++代码(与头文件有关)
        -I 指定import路径(见上文)
        -x 不要产生XML示例文件
        -i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)

0 0