I am working in windows XP 32 bit (I realize that it is old, but for the project to be carried out I have no alternative) and I'm using gsoap_2.8.123. The MinGW gcc version is gcc.exe (MinGW.org GCC-6.3.0-1) 6.3.0.
MinGW is installed in the directory C:\MinGW
I used msys to download the libraries:
mingw32-pthreads-w32
msys-libopenssl
Msys download the openssl library under the directory C:\MinGW\msys\1.0\lib\
for which I have copied the directory
C:\MinGW\msys\1.0\lib\openssl in C:\MinGW\lib\openssl
and
C:\MinGW\msys\1.0\include\openssl in C:\MinGW\include\openssl
and
C:\MinGW\msys\1.0\lib\libssl.* in C:\MinGW\lib\libssl.*
I have set the environment variables :
CPPFLAGS = "-DWITH_NO_C_LOCALE -DWITH_OPENSSL"
CXXFLAGS = "-DWITH_NO_C_LOCALE -DWITH_OPENSSL"
I ran ./configure and make
and when the compiler tries to build wsdl2h.exe I get:
make[5]: Entering directory `/c/gSoap/gsoap-2.8/gsoap/wsdl'
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-wsdl2h.o -MD -MP -MF .deps/wsdl2h-wsdl2h.Tpo -c -o wsdl2h-wsdl2h.o `test -f 'wsdl2h.cpp' || echo './'`wsdl2h.cpp
mv -f .deps/wsdl2h-wsdl2h.Tpo .deps/wsdl2h-wsdl2h.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-wsdl.o -MD -MP -MF .deps/wsdl2h-wsdl.Tpo -c -o wsdl2h-wsdl.o `test -f 'wsdl.cpp' || echo './'`wsdl.cpp
mv -f .deps/wsdl2h-wsdl.Tpo .deps/wsdl2h-wsdl.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-wadl.o -MD -MP -MF .deps/wsdl2h-wadl.Tpo -c -o wsdl2h-wadl.o `test -f 'wadl.cpp' || echo './'`wadl.cpp
mv -f .deps/wsdl2h-wadl.Tpo .deps/wsdl2h-wadl.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-schema.o -MD -MP -MF .deps/wsdl2h-schema.Tpo -c -o wsdl2h-schema.o `test -f 'schema.cpp' || echo './'`schema.cpp
mv -f .deps/wsdl2h-schema.Tpo .deps/wsdl2h-schema.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-types.o -MD -MP -MF .deps/wsdl2h-types.Tpo -c -o wsdl2h-types.o `test -f 'types.cpp' || echo './'`types.cpp
mv -f .deps/wsdl2h-types.Tpo .deps/wsdl2h-types.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-service.o -MD -MP -MF .deps/wsdl2h-service.Tpo -c -o wsdl2h-service.o `test -f 'service.cpp' || echo './'`service.cpp
mv -f .deps/wsdl2h-service.Tpo .deps/wsdl2h-service.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-soap.o -MD -MP -MF .deps/wsdl2h-soap.Tpo -c -o wsdl2h-soap.o `test -f 'soap.cpp' || echo './'`soap.cpp
mv -f .deps/wsdl2h-soap.Tpo .deps/wsdl2h-soap.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-mime.o -MD -MP -MF .deps/wsdl2h-mime.Tpo -c -o wsdl2h-mime.o `test -f 'mime.cpp' || echo './'`mime.cpp
mv -f .deps/wsdl2h-mime.Tpo .deps/wsdl2h-mime.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-wsp.o -MD -MP -MF .deps/wsdl2h-wsp.Tpo -c -o wsdl2h-wsp.o `test -f 'wsp.cpp' || echo './'`wsp.cpp
mv -f .deps/wsdl2h-wsp.Tpo .deps/wsdl2h-wsp.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-bpel.o -MD -MP -MF .deps/wsdl2h-bpel.Tpo -c -o wsdl2h-bpel.o `test -f 'bpel.cpp' || echo './'`bpel.cpp
mv -f .deps/wsdl2h-bpel.Tpo .deps/wsdl2h-bpel.Po
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -MT wsdl2h-wsdlC.o -MD -MP -MF .deps/wsdl2h-wsdlC.Tpo -c -o wsdl2h-wsdlC.o `test -f 'wsdlC.cpp' || echo './'`wsdlC.cpp
mv -f .deps/wsdl2h-wsdlC.Tpo .deps/wsdl2h-wsdlC.Po
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -g -O2 -MT wsdl2h-httpda.o -MD -MP -MF .deps/wsdl2h-httpda.Tpo -c -o wsdl2h-httpda.o `test -f '../../gsoap/plugin/httpda.c' || echo './'`../../gsoap/plugin/httpda.c
mv -f .deps/wsdl2h-httpda.Tpo .deps/wsdl2h-httpda.Po
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../gsoap -I../../gsoap/plugin -DMINGW -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_OPENSSL -DWITH_GZIP -g -O2 -MT wsdl2h-smdevp.o -MD -MP -MF .deps/wsdl2h-smdevp.Tpo -c -o wsdl2h-smdevp.o `test -f '../../gsoap/plugin/smdevp.c' || echo './'`../../gsoap/plugin/smdevp.c
mv -f .deps/wsdl2h-smdevp.Tpo .deps/wsdl2h-smdevp.Po
g++ -DWITH_OPENSSL -DWITH_GZIP -DWSDL2H_IMPORT_PATH="\"/usr/local/share/gsoap/WS\"" -m32 -DWITH_NO_C_LOCALE -DWITH_OPENSSL -L../../gsoap/wsdl -I../../gsoap -I../../gsoap/plugin -o wsdl2h.exe wsdl2h-wsdl2h.o wsdl2h-wsdl.o wsdl2h-wadl.o wsdl2h-schema.o wsdl2h-types.o wsdl2h-service.o wsdl2h-soap.o wsdl2h-mime.o wsdl2h-wsp.o wsdl2h-bpel.o wsdl2h-wsdlC.o wsdl2h-httpda.o wsdl2h-smdevp.o ../../gsoap/libgsoapssl++.a -lws2_32 -lkernel32 -luser32 -lgdi32 -lm -lssl -lcrypto -lz -lpthread
wsdl2h-httpda.o: In function `http_da_session_cleanup':
c:\gSoap\gsoap-2.8\gsoap\wsdl/../../gsoap/plugin/httpda.c:1498: undefined reference to `emulate_pthread_mutex_lock'
wsdl2h-httpda.o: In function `http_da_session_start':
c:\gSoap\gsoap-2.8\gsoap\wsdl/../../gsoap/plugin/httpda.c:1425: undefined reference to `emulate_pthread_mutex_lock'
wsdl2h-httpda.o: In function `http_da_session_update':
c:\gSoap\gsoap-2.8\gsoap\wsdl/../../gsoap/plugin/httpda.c:1460: undefined reference to `emulate_pthread_mutex_lock'
collect2.exe: error: ld returned 1 exit status
make[5]: *** [wsdl2h.exe] Error 1
make[5]: Leaving directory `/c/gSoap/gsoap-2.8/gsoap/wsdl'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/c/gSoap/gsoap-2.8/gsoap/wsdl'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/c/gSoap/gsoap-2.8/gsoap'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/c/gSoap/gsoap-2.8/gsoap'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/c/gSoap/gsoap-2.8'
make: *** [all] Error 2
the gsoap\plugin\threads.c file appears not to be compiled.
It is as if there aren't compile directives for .c files in gsoap/plugin
soapcpp2.exe is successfully generated.
What did I do wrong? How can I generate wsdl2h.exe ?
Is my way of proceeding to compile gSoap with ssl support correct?
You should try with 32-bit MinGW-w64. Since you are targetting Windows XP you may need to get an older version, but it will still be more up to standards than plain MinGW.
This will also drop the dependency on a separate mingw32-pthreads-w32 library, which is clearly giving you problems.