In order to develop applications or software components based on CORAL one should have in the INCLUDE path the include directory of a CORAL installation and link against the RelationalAccess and CoralBase libraries. Moreover, since CORAL depends on SEAL for the definition of the 64-bit integer, and the its Exception class, one should also have in the INCLUDE path the include directories of a SEAL installation of the relevant version and link against the SealKernel, PluginManager and SealBase libraries.
A CORAL release x.y.z is installed under the afs directory
/afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_X_Y_ZThe INCLUDE path should contain the directory
/afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_X_Y_Z/includeand the libraries for a platform (operating system / compiler / compiler flag) PLATFORM under
/afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_X_Y_Z/PLATFORM/libThis means that for a linux plaform the compile/link statement of a simple CORAL application should be something like the following:
g++ -o MyCoralApplication MyCoralApplication.cpp \ -D_GNU_SOURCE -DGNU_SOURCE -fPIC -pthread -pipe -ansi -pedantic-errors \ -I/afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_X_Y_Z/include \ -I/afs/cern.ch/sw/lcg/app/releases/SEAL/SEAL_Xx_Yy_Zz/include \ -I/afs/cern.ch/sw/lcg/app/releases/SEAL/SEAL_Xx_Yy_Zz/PLATFORM/include \ -L/afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_X_Y_Z/PLATFORM/lib \ -llcg_coral_RelationalAccess -llcg_coral_CoralBase \ -L/afs/cern.ch/sw/lcg/app/releases/SEAL/SEAL_Xx_Yy_Zz/PLATFORM/lib \ -llcg_SealKernel -llcg_PluginManager -llcg_SealBase \ -luuid -lpcre -lnsl -lcrypt -ldl -Wl,-E
In order to run an application which is using CORAL one should include in the LD_LIBRARY_PATH environment variable (the PATH variable for win32 platforms) the library directories of CORAL, SEAL, and of the external packages used either directly (eg. uuid) or at run-time when a plugin is loaded. For example the XML-based implementation plugins will require the shared libraries for XercesC, the Oracle plugin will require the Oracle instant client libraries, etc.
Moreover, in order for the system to know which plugins are available the SEAL_PLUGINS path environment variable should include the directories
For the development of new plugin implementations of the CORAL interfaces, one should append to the above environment variables the directories where the corresponding libraries and plugin definitions reside.
The currently supported platforms are:
The external dependencies are listed in the following table:
|External package||Version||Required by||Platform|
|frontier_client||2.7.4||FrontierAccess||All but win32|
|expat||1.95.8||frontier_client||All but win32|
Here is a list of tips which address the most frequently encountered problems.
CORAL takes care for it automatically wherever this is possible, but whenever queries are issued it is up to the user to ensure that this is done.