• Notes for Linux.
    1. To compile the Database Template Library you will need gcc 3.0 or gcc 2.96-85 (with patch). You will not be able to compile under gcc 2.95 or gcc 2.96-54 as these versions do not support some C++ standard features that our code requires such as stringstreams. (Actually, we have reports from users that you *can* compile under gcc 2.95.4, but you must use the STLport libraries which have the necessary parts of the standard library that we need.)
    2. The makefiles for Linux are accessed via "sh build.sh" in the lib, example, and tests directories (or you can just say "sh build-all.sh" from the main directory).
    3. If you compile with gcc 2.96-85 you will get an error message like "basstring.h line 343 cannot convert from const char * to const BYTE * in c_str() return". The problem is that 2.96-85 has a bug in basic_string::c_str(). Our recommended fix here is to upgrade to gcc 3.0 where the problem has been fixed. Failing that, it is relatively easy to patch the library, the routine has a statement return "";. Simply change this to return (CharT *)"";
    4. MySQL 3.23.55 is case sensitive when specifying table names (unlike previous versions of MySQL). For this reason we have enabled DTL_UC in the linux configuration file config/linux-i686-gcc.inc to force all queries to run in upper case. If you are not running versus MySQL in Linux you may want to remove this flag.
    5. MySQL 3.23.33 does not support COMMIT or ROLLBACK. Therefore the "range transaction" examples will not work under this version of MySQL. Also, bulk insert does not work under the MySQL 3.51 ODBC driver. Thus, bulk_copy and range inserts for DynamicDBView will fail.
    6. When you run the executable for the first time under unixODBC you may get a message like "error while loading shared libraries: libodbc.so.1: cannot open shared object file: No such file or directory". This problem may also manifest as a "Data source name not found" error. The solution is to make sure your environment variables set up correctly for unixODBC to find the unixODBC libraries at runtime. To fix this either:
      1. Add /usr/local/lib to LD_LIBRARY_PATH
        > LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
        > export LD_LIBRARY_PATH

      2. Or in linux, as root you can add /usr/local/lib to /etc/ld.so.conf, and then run ldconfig (often in /sbin/ldconfig), to add it to all users lib search paths.