What It Is ~~~~~~~~~~ MySQL++ is a C++ wrapper for MySQL's C API. It is built around STL principles, to make dealing with the database as easy as dealing with an STL container. MySQL++ relieves the programmer of dealing with cumbersome C data structures, generation of repetitive SQL statements, and manual creation of C++ data structures to mirror the database schema. Its home page is http://tangentsoft.net/mysql++/ Prerequisites ~~~~~~~~~~~~~ To build MySQL++, you must have the MySQL C API development files installed. On Unixy systems (Linux, Mac OS X, Cygwin, *BSD, Solaris...), the MySQL development files are installed if you build MySQL from source. If you installed MySQL as a binary package, then the development files are often packaged separately from the MySQL server itself. It's common for the package containing the development files to be called something like "MySQL-devel". If you're building on Windows with Visual C++ or MinGW, you need to install the native Win32 port of MySQL from mysql.com. The development files are only included with the "complete" version of the MySQL installer, and some versions of this installer won't actually install them unless you do a custom install. Another pitfall is that MySQL++'s project files assume that you've installed the current General Availability release of MySQL (v5.0 right now) and it's installed in the default location. If you've installed a different version, or if MySQL Inc. changes the default location (which they seem to do regularly!) you'll have to adjust the link and include file paths in the project settings. Additional Things to Read ~~~~~~~~~~~~~~~~~~~~~~~~~ Each major platform we support has a dedicated README-*.txt file for it containing information specific to that platform. Please read it. For authorship information, see the CREDITS.txt file. For license information, see the COPYING.txt file. If you want to change MySQL++, see the HACKERS.txt file. You should have received a user manual and a reference manual with MySQL++. If not, you can read a recent version online: http://tangentsoft.net/mysql++/doc/ Search the MySQL++ mailing list archives if you have more questions: http://lists.mysql.com/plusplus/ Building the Library ~~~~~~~~~~~~~~~~~~~~ MySQL++ uses Bakefile (http://bakefile.org/) to generate platform-specific project files and makefiles from a single set of input files. We currently support these build systems: autoconf: For Unixy platforms, including Linux, Mac OS X, and Cygwin, in addition to the "real" Unices. See README-Unix.txt for general instructions. Supplementary platform-specific details are in README-Cygwin.txt, README-Linux.txt, README-Mac-OS-X.txt, and README-Solaris.txt. MinGW: We ship Makefile.mingw for MinGW. It currently only builds the static version of the library for technical reasons. This has licensing ramifications. See README-MinGW.txt for details. Visual C++: We ship Visual Studio 2003, 2005, and 2008 project files. No older version of Visual C++ will build MySQL++, due to compiler limitations. See README-Visual-C++.txt for more details. Xcode: We ship an Xcode v2 project file. It hasn't been tested much yet, since the autoconf method works just fine on OS X. As a result, we need both success and failure reports on the mailing list. See README-Mac-OS-X.txt for more information. Example Programs ~~~~~~~~~~~~~~~~ You may want to try out the programs in the examples subdirectory to ensure that the MySQL++ API and your MySQL database are both working properly. Also, these examples give many examples of the proper use of MySQL++. See README-examples.txt for further details. Unsupported Compliers ~~~~~~~~~~~~~~~~~~~~~ If you're on Windows but want to use some other compiler besides Visual C++ or GCC, you are currently on your own. There have been past efforts to port MySQL++ to other Windows compilers, but for one reason or another, all of these ports have died. On Unixy systems, GCC still works best. "Native" compilers and third-party compilers may work, but you're on your own to get it working. We have nothing in particular against these unsupported systems. We just lack the time and resources to support everything ourselves. If you are sufficiently motivated to get MySQL++ working on one of these alternate systems, see the HACKERS.txt file first for guidance. If you follow the advice in that file, your patch will be more likely to be accepted. If You Want to Hack on MySQL++... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you intend to change the library or example code, please read the HACKERS.txt file. If you want to change the user manual, read doc/userman/README.txt If you want to change the reference manual, see the Doxygen manual: http://www.stack.nl/~dimitri/doxygen/manual.html