说明:本文参考gsoap文档
1. 生成envC.o
创建一个空的头文件:env.h。然后执行:
soapcpp2-penvenv.h
g++-cenvC.cpp
2. 生成stdcpp2.o
执行g++-c-DWITH_NONAMESPACESstdsoap2.cpp,用来生成stdcpp2.o。
下面的例子同时处理两个不同的wsdl文件,一个wsdl生成客户端代码,一个wsdl生成服务端代码,最后它们分别生成的代码可以编译在一块。这样可以实现一个wsdl生成的服务端代码可以调用另一个wsdl生成的客户端代码,从而实现webservice的嵌套调用。
3. 处理生成客户端代码的wsdl
//-q:指定命名空间为Kpi。
wsdl2h-s-qKpi-oKpiEngine.HKpiEngine.Wsdl
//生成 客户端代码
soapcpp2-i-C-n-pKpiKpiEngine. h
假设生成后的代码为:KpiSoapProxy.cpp、KpiC.Cpp
执行:g++-cKpiSoapProxy.Cpp,生成KpiSoapProxy.o
执行:g++-cKpiC.Cpp,生成KpiC.o
4. 处理生成服务端代码的wsdl
//-q:指定命名空间为Test
wsdl2h-s-qTestHelloWorldSer.Wsdl
soapcpp2-i-t-S-nHelloWorldSer.H
假设生成后的代码为:TestSoapService.cpp、TestC.Cpp
执行:g++-cTestSoapService.Cpp,生成TestSoapService.O
执行:g++-cTestC.Cpp,生成TestC.o
5. 生成可执行程序:
g++-omainmain.cppstdsoap2.oenvC.oKpiSoapProxy.OKpiC.OTestSoapService.OTestC.O
以上的步骤可以组合到一个makefile中。