将gsoap-2.8压缩包上传到服务器,解压到/opt/gsoap-2.8目录,进入目录,执行如下的命令编译出wsdl2h,soapcpp2可执行程序

编译指令

./configure --prefix=/opt/gsoap(你自己的选择的安装路径)

sudo make

make install

cd /opt/gsoap/bin

这个之后,我们需要将/opt/gsoap-2.8/gsoap/typemap.dat,以及同一级目录下的文件夹import ,custom, plugin拷贝到/opt/gsoap/bin目录下

在当前目录存在wsdl2h,soapcpp2可执行程序,通过如下两个指令生成代码

[root@localhost test]# ./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/deviceio.wsdl http://www.onvif.org/onvif/ver10/network/wsdl/remotediscovery.wsdl

生成文件onvif.h

[root@localhost test]# ./soapcpp2 -c onvif.h -x  -L -I./custom -I./plugin -I./import

最终的目录如下:

[root@localhost test]# ls
custom                 import              plugin                        soapClient.c  soapServer.c  wsdd.nsmap
DeviceBinding.nsmap    MediaBinding.nsmap  RemoteDiscoveryBinding.nsmap  soapcpp2      soapStub.h    wsdl2h
DeviceIOBinding.nsmap  onvif.h             soapC.c                       soapH.h       typemap.dat