使用 gsoap 编译时出错
Error in compiling using gsoap
我正在尝试通过这些步骤生成文件后进行编译:-
(1) wsdl2h -o calc.h http://www.genivia.com/calc.wsdl
(2) soapcpp2 -j -CL calc.h
(3) 使用以下代码创建 main.cpp:-
#include "calc.nsmap" // XML namespace mapping table (only needed once at the global level)
#include "soapcalcProxy.h" // the proxy class, also #includes "soapH.h" and "soapStub.h"
int main()
{
calcProxy calc;
double sum;
if (calc.add(1.23, 4.56, sum) == SOAP_OK)
std::cout << "Sum = " << sum << std::endl;
else
calc.soap_stream_fault(std::cerr);
calc.destroy(); // same as: soap_destroy(calc.soap); soap_end(calc.soap);
}
- 之后我编译发出命令:-
g++ -o calcclient main.cpp soapcalcProxy.cpp soapC.cpp -lgsoap++
我收到以下错误:-
/tmp/ccA5Ergj.o: In function `soap_ignore_element(soap*)':
soapC.cpp:(.text+0x112d): undefined reference to `soap_ignore'
/tmp/ccA5Ergj.o: In function `soap_putelement':
soapC.cpp:(.text+0x149b): undefined reference to `soap_element_empty'
collect2: error: ld returned 1 exit status
请帮忙编译
我解决了这个问题。我以为该库在 /usr/lib 中,但它在 /usr/local/lib 中。我在编译时加入了 -L/usr/local/lib,它起作用了。
我正在尝试通过这些步骤生成文件后进行编译:-
(1) wsdl2h -o calc.h http://www.genivia.com/calc.wsdl
(2) soapcpp2 -j -CL calc.h
(3) 使用以下代码创建 main.cpp:-
#include "calc.nsmap" // XML namespace mapping table (only needed once at the global level)
#include "soapcalcProxy.h" // the proxy class, also #includes "soapH.h" and "soapStub.h"
int main()
{
calcProxy calc;
double sum;
if (calc.add(1.23, 4.56, sum) == SOAP_OK)
std::cout << "Sum = " << sum << std::endl;
else
calc.soap_stream_fault(std::cerr);
calc.destroy(); // same as: soap_destroy(calc.soap); soap_end(calc.soap);
}
- 之后我编译发出命令:- g++ -o calcclient main.cpp soapcalcProxy.cpp soapC.cpp -lgsoap++
我收到以下错误:-
/tmp/ccA5Ergj.o: In function `soap_ignore_element(soap*)':
soapC.cpp:(.text+0x112d): undefined reference to `soap_ignore'
/tmp/ccA5Ergj.o: In function `soap_putelement':
soapC.cpp:(.text+0x149b): undefined reference to `soap_element_empty'
collect2: error: ld returned 1 exit status
请帮忙编译
我解决了这个问题。我以为该库在 /usr/lib 中,但它在 /usr/local/lib 中。我在编译时加入了 -L/usr/local/lib,它起作用了。