我基本上是一个java开发人员,我有一个使用java创建的web服务。现在我需要一个用C编写的客户机来使用java WS。在多次冲浪之后,我和gSOAP一起登陆,因为它支持WS。
现在,我能够生成头文件和相应的存根类。我还创建了一个调用实际代理方法的主类,但是由于某些原因,我的代码根本没有被编译。
我在做什么的步骤:
wsdl2h.exe-c-o calc.h calc.wsdl
soapcpp2.exe-C calc.h
gcc.exe-o CalcClient CalcClient.c soapC.c soapClient.c stdsoap2.c
前两个步骤很好,但只有3个步骤会给未定义的引用错误带来麻烦。请注意,我在windows平台上运行上述代码,gcc编译器是由Bloodshed Dev工具提供的。
我在执行步骤3时得到的错误是(复制了几行…),
CalcClient.C:5:未定义对soap-call-ns2-add的引用
CalcClient.C:10:未定义对soap_new_LIBRARY_VERSION_REQUIRED_20816'
soap-end'的引用
CalcClient.C:7: undefined reference to
和
C:\ TEMP/ccS0iaaa.o(.text+0x129):stdsoap2.C:对soap_print_fault'
发送@16'的未定义引用
CalcClient.C:11: undefined reference to
C:\ TEMP/ccS0iaaa.o(.text+0x224):stdsoap2.C:对sendto@24'
send@16'的未定义引用
C:\TEMP/ccS0iaaa.o(.text+0x154):stdsoap2.c: undefined reference to
C:\ TEMP/ccS0iaaa.o(.text+0x28b):stdsoap2.C:对sendto@24'
inet地址@4的未定义引用
C:\TEMP/ccS0iaaa.o(.text+0x24f):stdsoap2.c: undefined reference to
我知道我肯定做错了什么(因为我是C的新手),我试了所有我能想到的选择,你能帮我一下吗?
最佳答案
我也有类似的问题。这主要是因为我没有包括stdsoap2.cpp或stdsoap2.c。我将stdsoap2.cpp文件从gsoap文件夹复制到项目文件夹中,然后运行程序,它运行得很好。
关于c - gSOAP-Windows中使用gcc.exe的 undefined reference 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19277069/