我基本上是一名 java 开发人员,我有一个使用 java 创建的 web 服务。现在我需要一个用 C 编码的客户端来使用那个 java WS。在浏览了很多之后,我了解了它对 WS 的支持的 gSOAP cos。
现在,我能够生成头文件以及相应的存根类。我还创建了一个将调用实际代理方法的主类。但由于某些原因,我的代码根本没有被编译。
我在做什么的步骤:
- 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 开发工具提供。
执行步骤 3 时出现的错误是(复制了几行..),
CalcClient.C:5: undefined reference to soap_call_ns2__add'
CalcClient.C:10: undefined reference to soap_end'
和 C:\TEMP/ccS0iaaa.o (.text+0x129):stdsoap2.c: 未定义对send@16' 的引用
C:\TEMP/ccS0iaaa.o(.text+0x224):stdsoap2.c: 未定义对send@16'
C:\TEMP/ccS0iaaa的引用.o(.text+0x28b):stdsoap2.c: 未定义对 inet_addr @4的引用soap_new_LIBRARY_VERSION_REQUIRED_20816'
CalcClient.C:7: undefined reference tosoap_print_fault'
CalcClient.C:11: undefined reference tosendto@24'
C:\TEMP/ccS0iaaa.o(.text+0x154):stdsoap2.c: undefined reference tosendto@24'
C:\TEMP/ccS0iaaa.o(.text+0x24f):stdsoap2.c: undefined reference toWSAGetLastError@0'
C:\TEMP/ccS0iaaa.o(.text+0x4a9b):stdsoap2.c: undefined reference to
我知道肯定做错了什么(因为我是 C 新手)。我尝试了所有我能想到的选项,你能帮我吗?