Unix-Linux libraries example configurations

Some of the eXtremeDB libraries contain references to functions in other libraries which create inter-dependencies. For example, the core library libmcolib.a refers to the transaction manager library (libmcomursiw.a or libmcomvcc.a) and the transaction manager library refers back to libmcolib.a. Some C/C++ compilers (in particular gcc and Diab) are sensitive to the order of the libraries enumerated in the link list. For these compilers, these inter-dependencies are resolved by specifying the libraries in a specific order and it is necessary to specify the same library more than once in the link list as seen in the following examples (note that a description of the individual libraries can be viewed in the package contents topic):

An in-memory database application using MURSIW and snapshot save/load functionality

An application that uses a database in conventional memory, the MURSIW transaction manager, uses the C runtime and the POSIX based synchronization primitives, and uses the snapshot functions mco_db_save() and mco_db_load() would have the following link list:

 
    -lmcolib -lmcovtmem -lmcoseri -lmcoslnxp -lmcomconv -lmcotmursiw -lmcolib -lmcouwrt 
    -lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes
     

A persistent database application using MVCC and snapshot save/load functionality

An application that uses persistent classes, the MVCC transaction manager, uses the C runtime and the POSIX based synchronization primitives, and uses the functions mco_db_save() and/or mco_db_load() would have the following link list:

 
    -lmcolib -lmcovtdsk -lmcoseri -lmcoslnxp -lmcomconv -lmcotmvcc -lmcolib -lmcofu98 -lmcouwrt 
    -lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes
     

A persistent shared-memory database application using MVCC

An application using IPC shared memory with persistent classes would have the following link list:

 
    -lmcolib -lmcovtdsk -lmcoslnx -lmcomipc -lmcotmvcc -lmcolib -lmcofu98 -lmcouwrt 
    -lmcotrace -lmcosallatches -lmcosalatomic -lmcosalsmp -lmcosaltimer -lmcosalmem -lmcocryptaes
     

An application using debug libraries

The same persistent shared-memory database application during the development cycle would link with the following “debug” libraries:

 
    --lmcolib_debug -lmcovtdsk_debug -lmcoslnx_debug -lmcomipc_debug -lmcotmvcc_debug 
    -lmcolib_debug -lmcofu98_debug -lmcouwrt_debug -lmcotrace_debug -lmcosallatches_debug 
    -lmcosalatomic_debug -lmcosalsmp -lmcosaltimer_debug -lmcosalmem_debug -lmcocryptaes_debug
     

Note that the SDK sample projects give more examples of which libraries to include for the different eXtremeDB features.