PDA

View Full Version : Qt + gSoap + Visual Studio 2005



xgoan
13th September 2006, 14:33
Hi,

someone knows how to build the code created by gSoap in Visual Studio 2005?

I'm trying it but it give me a lot of errors like:


Error 1 error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > * __cdecl soap_new_std__string(struct soap *,int)" (?soap_new_std__string@@YAPAV?$basic_string@DU?$ch ar_traits@D@std@@V?$allocator@D@2@@std@@PAUsoap@@H @Z) already defined in soapClientLib.obj soapServerLib.obj

Error 3 error LNK2005: "public: virtual void __thiscall _ns1__GetMessageStatusResponse::soap_serialize(str uct soap *)const " (?soap_serialize@_ns1__GetMessageStatusResponse@@U BEXPAUsoap@@@Z) already defined in soapClientLib.obj soapServerLib.obj

Error 320 error LNK2019: unresolved external symbol _send@16 referenced in function _fsend stdsoap2.obj

Error 343 error LNK2001: unresolved external symbol _namespaces stdsoap2.obj

Bye, thanks

wysota
15th September 2006, 10:36
Looks like you have some symbol redefinitions. Did you wrap all headers into #ifndef-#define-#endif statements?

yoda
24th May 2007, 03:50
hi everybody,

This is a post more for gSOAP than Qt.

It's about the "error LNK2001: unresolved external symbol _namespaces" reported by xgoan.

Since this is one of the few places i've found mentioning this problem, i just want to post the solution for anyone suffering the same problem.

The fix is to #include the nsmap file that is generated by gSOAP in your own cpp files:

#include "soapH.h" // or whatever it is called, you must already have it
#include "whatever.nsmap" // this is what you have to add to fix the problem

The solution was originally posted in an spanish forum:
http://www.programacion.com/foros/37/msg/171805

enjoy!

alemark
17th December 2007, 19:27
Hi,

there is also a Qt based application server that supports XML-RPC based on web services: FEAST.

http://trolltech.com/partners/directory/allpartners/clausmark/

http://dist.trolltech.com/pdf/ClausmarkSolutionBrief_web.pdf

http://www.clausmark.com/feast_en.phtml

FEAST handles the concurrent user situation as well as taking care of
backend data sources with connection pooling etc. Actually FEAST is more
then a server; it is development framework for distributed applications
based on Qt.

FEAST uses SOAP HTTP as the communication protocol (it does not rely on
gSOAP though and does away with several of the limitations of gSOAP) so it is easy to use over the internet through firewalls
etc.

/Niklas