天天看點

Onvif第六課 Linux編譯gsoap

知識準備

            gSOAP是一個綁定SOAP/XML到C/C++語言的工具,使用它可以簡單快速地開發出SOAP/XML的伺服器端和用戶端。由于 gSOAP具 有相當不錯的相容性,通過gSOAP,我們就可以調用由Java, .Net, Delhpi, PHP等語言開發的SOAP服務,或者向它們提供SOAP服務。gSOAP的首頁是:http://sourceforge.net/projects/gsoap2

下載下傳解壓後,可以在gsoap\bin\win32裡 找到wsdl2h.exe和soapcpp2.exe(另外還有linux和mac版本)。

wsdl2h.exe的作用是根據WSDL生成C/C++風格的頭 檔案

soapcpp2.exe的作用是根據頭檔案自動生成調用遠端 SOAP服務的用戶端代碼(稱為存根:Stub)和提供SOAP服務的架構代碼(稱為架構:Skeleton),另外它也能從頭檔案生成WSDL檔案。

gsoap\stdsoap2.cpp則是gSOAP的核心代碼,要使用 gSOAP隻要在項目裡包含這個檔案以及由soapcpp2.exe生成的代碼即可。另外還有個stdsoap2.c,内容與stdsoap2.cpp一 模一樣,用于純C項目。

将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

繼續閱讀