I’m using gSOAP along with Qt for Symbian.
Under the emulator, the application compiles fine, but when I change the target of the compiler to compile for the device, I get the following error.
WARNING: Can't find following headers in System Include Path
<netinet\tcp.h>
This gets included from the stdsoap2.h file as follows:
#ifndef WITH_NOIO
# ifndef WIN32
# ifndef PALM
# include <sys/socket.h>
# ifdef VXWORKS
# include <sockLib.h>
# include <selectLib.h>
# ifndef _WRS_KERNEL
# include <strings.h>
# endif
# else
# ifndef SYMBIAN
# include <strings.h>
# endif
# endif
# ifdef SUN_OS
# include <sys/stream.h> /* SUN */
# include <sys/socketvar.h> /* SUN < 2.8 (?) */
# endif
# ifdef VXWORKS
# ifdef _WRS_KERNEL
# include <sys/times.h>
# endif
# else
# include <sys/time.h>
# endif
# include <netinet/in.h>
# ifdef OS390
# include <netinet/tcp_var.h>
# else
# include <netinet/tcp.h> /* TCP_NODELAY */
# endif
# include <arpa/inet.h>
# endif
# endif
#endif
I’m stumped! The file cannot be found anywhere..
To finally make it work, I had to port gSOAP to use
stdapisinstead oflibc. I removed one of the<netinet\tcp.h>lines and used<sys/select.h>instead.You can find the ported
stdsoap2.hfile at http://pastebin.com/xnrDbfFa.I also discovered that Symbian does not load STL by default, so all my methods that were returning
std::vectorandstd::stringare now not compiling.Instead of opting to the
-sflag to disable STL usage, I added the Symbian STL port to theINCLUDEPATHin the.profile like soAnd in the
soapStub.hI had to includeAlso you should modify your
typemap.datand add the following in order to be able to compile.Otherwise the compiler will complain about
since under Symbian, gSOAP is built with the
WITH_LEANflag, hence some of the stuff are disabled (for example, no support fortime_tserialization and no support forLONG64/ULONG64serialization) hence the requiredtypemap.datoverrides above.Finally, for future reference, here are the command line arguments that I used to generate the files:
And then:
You might also want to setup the namespaces in the
typemap.datand regenerate usingwsdl2h.