gSOAP 分段错误

gSOAP segmentation fault

本文关键字:错误 分段 gSOAP      更新时间:2023-10-16

最近我有一个小型的C++SOAP客户端项目(ubuntu linux)来构建gSOAP。我正在使用 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++ 时出现链接器错误。谁能看出我做错了什么???

我无法重现该问题,所以我不确定我的猜测。数组命名空间在 .nsmap 文件中定义。您的代码在 .nsmap 文件的 #include 中有一个注释,也许 gSOAP 不喜欢这个数组为空。你真的必须把"betfair.nsmap"#include 注释掉吗?