Building on UNIX ================ The following build instructions are for the Linux/UNIX/Mac OS X operating systems as well as for Cygwin and MinGW on Windows. The standard autotools-based build system is used on these platforms. After unpacking the source code archive, change to the libodb package directory (referred to as libodb/ from now on) and run the configure script: ./configure To see the available configuration options run configure with --help: ./configure --help As an example, the following configure command only builds shared libraries, uses the specified C++ compiler, and compiles with optimization and without debug information: ./configure --disable-static CXX=g++-4.5 CXXFLAGS=-O3 Once configuration is complete, run make to build libodb: make Once the build is completed successfully, you can install the libodb headers and libraries using the install target (you may need to do this step as root depending on the installation directory): make install Building on Windows =================== The following build instructions are for Windows using Microsoft Visual Studio. If you would like to build libodb with GCC either using Cygwin or MinGW, refer to the "Building on UNIX" section above. The standard Visual Studio project and solution files are used on this platform. To build libodb, unpack the source code archive and open the libodb-vc.sln file located in the libodb package directory (referred to as libodb\ from now on). Here is the version of Visual Studio that you are using. Once the solution is open, select the desired build configuration (Debug or Release) and platform (Win32 or x64) and build the solution. The resulting 32-bit DLLs and import libraries are placed into the libodb\bin\ and libodb\lib\ directories, respectively. Similarly, the 64-bit DLLs and import libraries are placed into libodb\bin64\ and libodb\lib64\. The Release versions of the import libraries are named odb.lib and the Debug versions are named odb-d.lib. To configure Visual Studio to automatically locate the libodb headers, DLLs, and import libraries, add the following paths to your VC++ Directories: Win32: Include: ...\libodb Library: ...\libodb\lib Executable: ...\libodb\bin x64: Include: ...\libodb Library: ...\libodb\lib64 Executable: ...\libodb\bin64 Note also that by default libodb uses the __declspec(thread) storage-class modifier for TLS support. This mechanism is known not to work correctly on Windows XP/Server 2003 and earlier versions of Windows if a DLL that uses this modifier is loaded dynamically. If you are planning to link libodb to a DLL that will be loaded dynamically (e.g., delay loading, COM DLL, explicit LoadLibrary() call, etc), then you will need to comment out the definition of the ODB_THREADS_TLS_DECLSPEC macro in the odb\details\config-vc.h file prior to building libodb. On the other hand, if you plan to link libodb directly to an executable or another DLL that will be linked directly to an executable or if you only need to support Windows Vista/Server 2008, then you don't need to make this change.