C Programmer’s Checklist
Developers of EMS C programs can use this checklist during the five phases of the development cycle.
Install
Install the EMS software release, which automatically includes the EMS client libraries, binaries, and header files in the EMS_HOME/lib subdirectory.
Code
Application programs must:
- Add EMS_HOME/include to the include path. (OpenVMS environments do not require an include path; skip this item.)
- Include the
tibems.h header file:
#include <tibems/tibems.h>
- Programs that use the C administration API must also include the
emsadmin.h header file:
#include <tibems/emsadmin.h>
- Programs that use the unshared state failover API must also include the
tibufo.h header file:
#include <tibems/tibufo.h>
- Call tibems_Open() to initialize the EMS C API and tibems_Close() to deallocate the memory used by EMS when complete.
Compile and Link
- Compile programs with an ANSI-compliant C compiler.
- Link with the appropriate EMS C library files; see Link These Library Files.
See the samples/c/readme.txt file for details.
Link These Library Files
EMS C programs must link the appropriate library files. The following sections describe which files to link for your operating system platform:
UNIX
In UNIX environments, both shared and static libraries are available. We recommend shared libraries to ease forward migration.
Include TIBCO_HOME/ems/8.5/lib/64 in your library path.
Linker Flag | Description |
---|---|
-ltibems64 | All programs must link using this library flag. |
-lssl -lcrypto | Programs that use SSL must link using these library flags. |
-lz | Programs that use compression must link using this library flag. |
-ltibemslookup64 -lldap -lxml2 -llber | Programs that use EMS LDAP lookup must link using these library flags. |
-ltibemsadmin64 | Programs that use the C administration library must link using this library flag. |
-ltibemsufo64 | Programs that use the unshared state failover library must link using this library flag. |
Microsoft Windows
For a list of Windows platforms that Release 8.5 supports, see the file readme.txt in the installation directory. Both DLLs and static libraries are available. We recommend DLLs to ease forward migration.
Library File | Description |
---|---|
With dynamic libraries (DLLs), use the /MT compiler option. | |
tibems.lib libeay32.dll ssleay32.dll | All programs must link these libraries. |
tibemslookup.lib libxml2.lib | Programs that use EMS LDAP lookup must link these libraries. |
liboldap32.lib libolber32.lib | In addition, programs that use EMS lookup must link these libraries. |
tibemsadmin.lib | Programs that use the C administration library must link using this library. |
tibemsufo.lib | Programs that use the C unshared state failover library must link using this library. |
If your Windows application fails to start due to a relocation error, try these workarounds:
Relink your application with the /FIXED flag.
Relink your application with static libraries.
Library File | Description |
---|---|
With static libraries (DLLs), use the /MD compiler option. | |
libtibems.lib ssleay32mt.lib libeay32mt.lib zlib.lib | All programs must link these libraries. |
libtibemsadmin.lib | Programs that use the C administration library must link using this library. |
libtibemsufo.lib | Programs that use the C unshared state failover library must link using this library. |
OpenVMS
In OpenVMS environments, both shared and static libraries are available. We recommend shared libraries to ease forward migration.
Library File | Description |
---|---|
LIBTIBEMSSHR.EXE | All programs must link this library. |
LIBCRYPTOSHR.EXE
LIBSSLSHR.EXE |
Programs that use SSL must link these libraries. |
LIBZSHR.EXE | Programs that use data compression must link this library. |
LIBTIBEMSADMINSHR.EXE | Programs that use the C administration library must link this library. |
LIBTIBEMSUFOSHR.EXE | Programs that use the C unshared state failover library must link using this library. |
Library File | Description |
---|---|
LIBTIBEMS.OLB | All programs must link this library. |
LIBCRYPTO.OLB
LIBSSL.OLB |
Programs that use SSL must link these libraries. |
LIBZ.OLB | Programs that use data compression must link this library. |
LIBTIBEMSADMIN.OLB | Programs that use the C administration library must link this library. |
LIBTIBEMSUFO.OLB | Programs that use the C unshared state failover library must link using this library. |