forked from ArduPilot/gSOAP
-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL.txt
339 lines (251 loc) · 13.8 KB
/
INSTALL.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
INSTALLATION
============
See the following sections below:
- Installing gSOAP on Windows
- Installing gSOAP on Windows with Cygwin or MinGW
- Installing gSOAP on Mac OS X
- Installing gSOAP on Unix/Linux
- Installing gSOAP on Mac OS X/Unix/Linux without automake, Bison, and Flex
- Installing gSOAP on other systems
Installing gSOAP on Windows
---------------------------
Windows (all versions) and WinCE are supported.
Executables and source code are both included in the download package. This
means that Windows developers can start right away.
If you get an error "The application was unable to start correctly
(0xc000007b). Click OK to close the application." when running wsdl2h.exe or
soapcpp2.exe then upgrade to gSOAP 2.8.58 or later or download Microsoft Visual
C++ Redistributable for Visual Studio 2015 from
https://www.microsoft.com/en-us/download/details.aspx?id=48145
For VC++ examples, see the gsoap/VisualStudio2005 directory in the download
package for examples that work with VisualStudio 2005 and later.
The executables of the two gSOAP tools are located in the download package:
- gsoap/bin/win32/wsdl2h.exe translator of WSDL/XSD to services and XML data
bindings (interface tool)
- gsoap/bin/win32/soapcpp2.exe code generator for services and XML data
bindings (implementation tool)
The wsdl2h.exe and soapcpp2.exe tools are invoked from the Windows command
prompt or from within your IDE as a custom-build step in Visual Studio.
Make sure that wsdl2h.exe and soapcpp2.exe can be launched/executed from the
Windows command prompt. To do so, select My Computer / Properties / Advanced
System Settings / Environment Variables. In the bottom pane select Path and
click Edit. Add the full path ending with gsoap/bin/win32/ after the last ';'.
You should now be able to execute wsdl2h.exe and soapcpp2.exe from the command
line, or from Start / Run.
To invoke wsdl2h.exe as a custom build step in Visual Studio C++ on a given
input WSDL file, first select the project name in Solution Explorer then
Property Pages from the View menu, see custom-build steps in Visual Studio
http://msdn.microsoft.com/en-us/library/hefydhhy.aspx. Enter wsdl2h.exe -o
service.h "FullPathToWSDLfile" as the Command Line property in Custom Build
Step with the full path to the WSDL or the WSDL URL. Enter the generated gSOAP
header file service.h as the Outputs property. Follow the same procedure to
configure soapcpp2.exe to be invoked on this gSOAP header file (assuming you
generated this file first), enter soapcpp2.exe
"C:\Users/YourUserName\Documents\VisualStudio 20XX\Projects\YY\service.h" as a
Command Line with YourUserName and XX and YY set as needed. Enter soapStub.h
soapH.h soapC.cpp soapClient.cpp soapServer.cpp as Outputs. If you prefer
generating client proxy and/or server web service classes using soapcpp2.exe -j
then add the soapXYZProxy.h soapXYZProxy.cpp soapXYZService.h
soapXYZService.cpp as Outputs as well. Run soapcpp2 by selecting the gSOAP
header file and Compile. Add the generated files to your project's
dependencies.
To invoke wsdl2h.exe from the Windows command prompt, execute wsdl2h.exe on one
or more WSDL and/or XSD files to generate code. Say you have a WSDL file
service.wsdl. The steps to generate the service interface service.h and the
client and server implementation source code files are:
$ wsdl2h.exe -o service.h service.wsdl
$ soapcpp2.exe -j service.h
You can use wsdl2h.exe with URLs to WSDL and XSD files as well. But please
note that wsdl2h.exe is not https-capable by default. To use https URLs it is
perhaps easiest to download the WSDL and XSD files to a local directory with a
browser and then apply wsdl2h.exe to the WSDL files and/or XSD files. Enabling
https for wsdl2h.exe requires OpenSSL which takes much more effort to install
and build with wsdl2h.exe.
Your project should take the following dependences into account:
- winsock2.h
- ws2tcpip.h
- ws2spi.h
- Ws2_32.lib
The ws2_32.lib dependence may require some steps. To do this in Visual Studio
C++ for example, go to "Project", "settings", select the "Link" tab (the
project file needs to be selected in the file view) and add ws2_32.lib to the
"Object/library modules" entry
Finally, note that the gSOAP distribution package contains a number of .c
files. Mixing .c with .cpp files is not recommended with Visual Studio and will
lead to runtime errors when building DLLs. Therefore, always rename .c files
to .cpp files to use them in your C++ projects with Visual Studio.
You are now ready to use gSOAP from the Windows shell command line or invoke
the tools in Visual Studio as custom-build steps.
Installing gSOAP on Windows with Cygwin or MinGW
------------------------------------------------
Read Installing gSOAP on Windows first and you can ignore the discussion of
Visual Studio. You must link your code against -lws2_32 and use
-DWITH_NO_C_LOCALE to compile. For example:
$ soapcpp2.exe -j -CL calc.h
$ c++ -DWITH_NO_C_LOCALE -o calcclient calcclient.cpp soapC.cpp soapcalcProxy.cpp stdsoap2.cpp -lws2_32
Later gSOAP releases may work without removing locale support with the
-DWITH_NO_C_LOCALE option, so try compiling without this option first to see if
this completes without reporting errors with locale_t or that xlocale.h could
not be found.
Install OpenSSL and Zlib libraries to enable HTTPS and HTTP compression.
Cygwin users should select openssl-devel source and zlib-devel source to
install. Otherwise, the OpenSSL and Zlib header files cannot be found.
Tip: when autoconf, automake, flex, bison, openssl-devel, and zlib-devel are
installed you can run configure to build the gSOAP tools and libraries as
follows:
$ ./configure
$ make
$ make install
Installing gSOAP on Mac OS X
----------------------------
It is recommended to install gSOAP per installation instructions for Unix/Linux
as described below. We strongly recommend to download the latest version of
OpenSSL to build the tools. Use an installation tool such as Macports
https://www.macports.org or Homebrew http://brew.sh to install OpenSSL:
First install the Xcode command line tools, then Flex, Bison, and OpenSSL:
$ xcode-select -install
$ sudo port install flex bison openssl
Then execute:
$ cd gsoap-2.8
$ ./configure --with-openssl=/usr/local/opt/openssl
$ make
$ sudo make install
For convenience we also included Mac OS X binaries of the tools in the download
package, but built without OpenSSL:
- gsoap/bin/macosx/wsdl2h translator of WSDL/XSD to services and XML data
bindings (interface tool)
- gsoap/bin/macosx/soapcpp2 code generator for services and XML data bindings
(implementation tool)
Use -I/usr/local/opt/openssl/include and -L/usr/local/opt/openssl/lib to compile your code.
Instead of the gsoap/libgsoapXX.a libraries, you can compile and link the
source code gsoap/stdsoap2.c and gsoap/stdsoap2.cpp directly in your project
builds. When compiling these source files you can enable SSL, GZIP, HTTP
cookies, IPv6 support using the following compiler flags:
-DWITH_OPENSSL to enable SSL, link with OpenSSL
-DWITH_GNUTLS to enable SSL, link with GNUTLS
-DWITH_GZIP to enable compression, link with Zlib
-DWITH_COOKIES to enable HTTP cookies
-DWITH_IPV6 to enable IPv6
-DWITH_C_LOCALE to force C locale, for proper use of decimal point in floats
-DWITH_NO_C_LOCALE no C locale, if there are errors for locale_t or xlocale.h
-DWITH_DOM to enable DOM for WS-Security, link with dom.c (or dom.cpp)
These flags should be used to compile *ALL* of your source code files to ensure
consistency.
There is also a MacPorts https://macports.org port of gSOAP available. To
install, execute:
$ port list gsoap
$ port install gsoap
Before installing, check the release version of gSOAP on MacPorts against the
changelog https://www.genivia.com/changelog.html to determine if the MacPorts
version is up to date.
Installing gSOAP on Unix/Linux
------------------------------
After unpacking the .zip file, install the gSOAP software on Unix/Linux systems
as follows:
$ ./configure
$ make
$ sudo make install
For the last step use admin (root) permissions (e.g. using sudo). To install
the executables in a local folder, say in $HOME/bin without requiring root
access, use:
$ ./configure
$ make
$ sudo make install exec_prefix=$HOME
The ./configure command takes the following configuration options:
--enable-samples also builds the examples
--enable-ipv6 builds the library with IPv6 support (-DWITH_IPV6)
--enable-ipv6-v6only builds the library with IPv6 support (-DWITH_IPV6_V6ONLY)
--disable-ssl removes all dependences on OpenSSL from the tools and libraries
--enable-gnutls replaces the dependence on OpenSSL by GNU TLS (-DWITH_GNUTLS)
--enable-debug builds the software (-DDEBUG) to produce audit logs (slow!)
--disable-namespaces removes global namespaces table linkage requirement
--disable-c-locale removes the C locale and locale_t (-DWITH_NO_C_LOCALE)
--with-openssl=DIR specifies the OpenSSL installation directory
--with-zlib=DIR specifies the Zlib installation directory
After successful configuration and completion of the build steps, the following
two tools are produced:
- gsoap/bin/wsdl2h translator of WSDL/XSD to services and XML data bindings
- gsoap/bin/soapcpp2 code generator for services and XML data bindings
The following libraries are produced depending on the configuration options:
- gsoap/libgsoap++.a the C++ runtime engine (plain, no HTTPS)
- gsoap/libgsoapssl++.a the C++ runtime engine, DOM, cookies, zlib, and SSL
- gsoap/libgsoap.a the C runtime engine (plain, no HTTPS)
- gsoap/libgsoapssl.a the C runtime engine, DOM, cookies, zlib, and SSL
If you got these files, you are now ready to use gSOAP.
If the above fails, then please verify that you have:
- Automake tools installed (make and GNU m4)
- Bison installed from www.gnu.org/software/bison or Yacc
- Flex installed from flex.sourceforge.net
- OpenSSL from www.openssl.org or GNUTLS from www.gnu.org/software/gnutls
- Optionally Zlib to support compression from www.zlib.net.
To build the tools and libraries without SSL/TLS (i.e. removing HTTPS support
and WS-Security support from wsdl2h and the libraries), rerun:
$ ./configure --disable-ssl
$ make
$ sudo make install
For the last step use admin (root) permissions (e.g. using sudo) or use
exec_prefix to install locally (see above).
If you are having trouble with automake, Bison, or Flex then see the additional
instructions below.
Installing gSOAP on Mac OS X/Unix/Linux without automake, Bison, and Flex
-------------------------------------------------------------------------
If automake, Bison, and Flex are not installed on your system and you cannot
get these to install, then build the wsdl2h and soapcpp2 tools as follows:
$ cd gsoap/src
$ make -f MakefileManual soapcpp2
$ cd gsoap/wsdl
$ make -f MakefileManual secure
If this fails to build soapcpp2 because the files gsoap/src/lex.yy.c,
gsoap/src/soapcpp2_yacc.tab.h (or gsoap/src/soapcpp2_yacc.h), and
gsoap/src/soapcpp2_yacc.tab.c (or gsoap/src/soapcpp2_yacc.c) were removed in a
prior build attempt, then please unarchive the gSOAP package content again to
retrieve these original files and redo the steps above.
If you do not have OpenSSL installed, then building a https-capable wsdl2h
fails. To build wsdl2h without OpenSSL for https:
$ cd gsoap/wsdl
$ make -f MakefileManual
This produces:
- gsoap/bin/wsdl2h translator of WSDL/XSD to services and XML data bindings
- gsoap/bin/soapcpp2 code generator for services and XML data bindings
Instead of the gsoap/libgsoapXX.a libraries (which were not produced), you can
compile and link the source code gsoap/stdsoap2.c (for C) and
gsoap/stdsoap2.cpp (for C++) directly in your project builds. When compiling
these source files you can enable SSL, GZIP, HTTP cookies, IPv6 support using
the following compiler flags:
-DWITH_OPENSSL to enable SSL, link with OpenSSL
-DWITH_GNUTLS to enable SSL, link with GNUTLS
-DWITH_GZIP to enable compression, link with Zlib
-DWITH_COOKIES to enable HTTP cookies
-DWITH_IPV6 to enable IPv6
-DWITH_C_LOCALE to force C locale
-DWITH_NO_C_LOCALE no locale, in case of compiler errors with locale_t
-DWITH_DOM to enable DOM for WS-Security, link with dom.c (or dom.cpp)
These flags should be used to compile ALL of your source code files to ensure
consistency.
Note 1: to use clang instead of GCC:
$ cd gsoap/src
$ make CC=clang -f MakefileManual soapcpp2
$ cd gsoap/wsdl
$ make CC=clang CPP=clang++ -f MakefileManual secure
Note 2: some systems may require additional libraries, for example Sun OS:
$ cd gsoap/wsdl
$ make CC=CC CPP=CC SOCKLIB='-lsocket -lnsl -lxnet' -f MakefileManual secure
Note 3: to use Yacc instead of Bison:
$ cd gsoap/src
$ make YACC='yacc -d -v -s soapcpp2_yacc' CMFLAGS='-DWITH_YACC -DWITH_FLEX' -f MakefileManual
You are now ready to use gSOAP.
Installing gSOAP on other systems
---------------------------------
Having trouble installing gSOAP on other systems? If you are unable to build
the wsdl2h and soapcpp2 tools on your system, then install the tools on a
supported system to generate source code and copy the code cross platforms. The
generated source code is portable and platform independent. The gSOAP engine,
library, and plugins can be compiled on a wide range of platforms to complete
your project builds.
For TandemNonStop installation and usage, see the gsoap/TandemNonStop directory
in the gSOAP package for instructions.
iOS is supported, see the gsoap/ios_plugin directory in the download package.
Symbian support is no longer included in the most recent releases. Please
inquire for assistance.
Palm OS support is no longer included in the most recent releases. The latest
stable release with Palm OS support is gSOAP 2.7.8c.