gpt4 book ai didi

c++ - gSoap 示例未编译

转载 作者:行者123 更新时间:2023-11-28 00:29:21 25 4
gpt4 key购买 nike

我正在尝试构建我的第一个 gSoap 应用程序。即使给出的 calc 示例也无法为我编译。我遵循了自述文件,并执行了以下操作:

  1. 使用提供的工具将 wsdl 转换为 header (wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl )

  2. 使用 soapcpp2 和生成的 calc.h (soapcpp2 -i calc.h)

  3. 创建了一个新项目,添加了一个“soap”目录,并在其中复制了以下文件:calc.nsmap、soapC.cpp、soapcalcProxy.h、soapH.h、soapStub.h、stdsoap2。 h, stdsoap2.cpp

  4. 写下这段代码:

    #include "soap/soapcalcProxy.h"
    #include "soap/calc.nsmap"

    int main()
    {
    calcProxy service;
    double result;
    if (service.add(1.0, 2.0, result) == SOAP_OK)
    std::cout << "The sum is " << result << std::endl;
    else
    service.soap_stream_fault(std::cerr);
    }
  5. 尝试编译

    make all 
    Building file: ../soap/soapC.cpp
    Invoking: GCC C++ Compiler
    g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"soap/soapC.d" -MT"soap/soapC.d" -o "soap/soapC.o" "../soap/soapC.cpp"
    ../soap/soapC.cpp: In function ‘int soap_out_SOAP_ENV__Reason(soap*, const char*, int, const SOAP_ENV__Reason*, const char*)’:
    ../soap/soapC.cpp:914:48: error: too many arguments to function ‘int soap_set_attr(soap*, const char*, const char*)’
    ../soap/stdsoap2.h:2384:27: note: declared here
    make: *** [soap/soapC.o] Error 1

它提示生成的文件中参数数量错误。我做错了什么?

最佳答案

您正在混合 gSOAP 的 2 个不同版本:
1.代码生成器soapcpp2
2. 包含文件 soap/stdsoap2.h(它不是生成的文件,而是 gSOAP 的一部分)

如果您将 gsoap 安装为一个包,那么包含文件应该在/usr/include 中。否则,您应该在编译命令中添加“-I [gSOAP include]”,在链接命令中添加“-L [gSOAP lib]”。

我能够使用以下命令构建您的 main.cpp

 mkdir soap
wsdl2h -s -o soap/calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl
soapcpp2 -i soap/calc.h -d soap
g++ -o calc main.cpp soap/soapC.cpp soap/soapcalcProxy.cpp -lgsoap++

关于c++ - gSoap 示例未编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com