gSOAP分段错误

时间:2012-04-20 21:21:23

标签: c++ ubuntu gsoap

最近我有一个使用gSOAP构建的小型C ++ SOAP客户端项目(ubuntu linux)。我正在使用2个Web服务类,我相信我已根据文档正确创建了这些类。但是,我的代码存在问题

    #include "envH.h"
    #include "betfairBFGlobalServiceProxy.h"
    #include "betfairBFExchangeServiceProxy.h"
    //#include "betfair.nsmap"
    #include <iostream>
    #include <string>
    // Following included to prevent ligsoap++ complaining of undefined references
    // to 'namespaces'
    SOAP_NMAC struct Namespace namespaces[] =  {};

    using namespace std;
    using namespace betfair;


    int main() 
    {
      BFGlobalServiceProxy bf;

      BFExchangeServiceProxy betfair2;  /* CRASH!! */
      return 0;
    }

我想对两个Web服务进行API调用,但我的程序在创建第二个服务代理对象时崩溃。我使用了wsdl2h -gbetfair选项和soapcpp2 -i -n选项,并在使用C ++命名空间创建多个客户端服务时,根据文档中的要求创建了一个新的env.h文件,以避免链接到libgsoap ++时出现链接器错误。任何人都可以看到我做错了什么???

1 个答案:

答案 0 :(得分:0)

我无法重现这个问题,所以我不确定我的猜测。数组名称空间在.nsmap文件中定义。您的代码在.incmap文件的#include中有注释,如果此数组为空,gSOAP可能不喜欢。你真的必须保持#include“betfair.nsmap”注释掉吗?