The
/target/bin
directory under your eXtremeSQL installation root directory contains a number of binary libraries that can be statically linked to your C applications. Each library is provided in two forms:
- Debug - used during development to aid in finding application level errors; contains several levels of checks for possible erroneous argument values and other error conditions that should be caught and resolved before application deployment; these are easily recognized with the
_debug
suffix in the filename- Release - used when the development cycle is completed or when performance comparisons are desired; because most of the checks built into the debug version are removed this version of the libraries performs significantly faster
Debug and Optimized Runtime
Linking with the “release mode” versions of the runtime libraries will result in the best possible application performance.
However, during development, the debug runtime libraries provide extensive support for application developers to quickly catch most programming errors related to database access. For instance, if an application mistakenly passes a corrupted transaction or object handle into a runtime method, the runtime (by default) raises a fatal exception and stops execution of the program. In most cases, this makes it very easy for the application developer to examine the call stack and find the source of the corruption. The debug runtime libraries internally implement many verification traps and various consistency checks. Obviously, that does not come free - the runtime needs to consume extra CPU cycles and some extra space for that.
When all the code is bug-free and the application can consistently pass verification tests, it is unnecessary to continue checking function parameters and supporting the debug traps. At this stage, it is advantageous to utilize the “release mode” runtime libraries.
Library usage
eXtremeSQL provides libraries for embedded "local" and "remote" SQL database support. All eXtremeSQL applications using the C++ API require the following library:
mcosql.lib The eXtremeSQL SQL core internals