Preparing C programs
Precompiled C programs are supplied in the /opt/mqm/samp/bin directory. To build a sample from source code, use a supported compiler (see Appendix A, Language compilers and assemblers for more information).
To compile, for example, the sample program amqsput0:
- export LIB=/opt/mqm/lib:$LIB
- Ensure the environment is set to use the correct versions of the compiler software and man pages:
export PATH=/opt/SUNWspro/bin:$PATH export MANPATH=/opt/SUNWspro/man:/usr/man:$MANPATH export LD_LIBRARY_PATH= \ /opt/SUNWspro/lib:/$OPENWINHOME/lib:$LD_LIBRARY_PATH- Compile the program (the order of the libraries specified is important):
cc -o <amqsput0> <amqsput0>.c -mt -lmqm -lmqmcs -lmqmzse \ -lsocket -lnsl -ldlIf you wish to compile a DCE application, use the following:
cc -o <amqsput0> <amqsput0>.c -mt -lmqm -lmqmcs_d -lmqmzse \ -ldce -lthread -lsocket -lnsl -ldlIf you use the unsupported compiler /usr/ucb/cc, your application may compile and link successfully. However when you run it, it will fail when it attempts to connect to the queue manager.
If you want to use the programs on a machine which has only the WebSphere MQ client for Solaris installed, recompile the programs to link them with the client library instead:
cc -o <amqsput0> <amqsput0>.c -lmqic -lmqmcs -lsocketTo build an WebSphere MQ client application that uses DCE, enter:
cc -o <amqsput0> <amqsput0>.c -mt -lmqic -lmqmcs_d -lmqmzse \ -ldce -lm -lpthread -lsocket -lc -lnsl -ldl
Linking libraries
You must link with the WebSphere MQ libraries that are appropriate for your application type:
Program/exit type Library files Server for C
libmqm.so, libmqmcs.so,
and libmqmzse.so
Client for C
libmqic.so, libmqmcs.so,
and libmqmzse.so
Server for C with DCE
libmqm.so, libmqmcs_d.so,
and libmqmzse.so
Client for C with DCE
libmqic.so, libmqmcs_d.so,
and libmqmzse.so
Notes:
- If you are writing an installable service (see WebSphere MQ System Administration Guide for further information), link to the libmqmzf.so library.
- If you are producing an XA switch load file for external coordination by an XA-compliant transaction manager such as IBM CICS, Transarc Encina, or Novell Tuxedo, link to the libmqmxa.a library.
- To run the sample Encina program, link against the following libraries in addition to the libraries listed above.
- libmqmxa.a
Also, link against libmqmcs_d.so instead of libmqmcs.so, in addition to the Encina and DCE libraries:
- libEncServer.so
- libEncina.so
- libdce.so
WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.
IBM is a trademark of the IBM Corporation in the United States, other countries, or both.