Linux is basically Unix, so README-Unix.txt covers the generic bits. I'll just cover a few of the issues specific to Linux here. Prerequisite: Install the MySQL Development Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ is built on top of the MySQL C API library, so it needs the C API development files to build against. Most distributions of the MySQL server for Linux don't come with these development files; they're packaged separately. This is because you don't actually need the server on your development machine, though it's often more convenient to use a local server than a remote one, for testing. There are about as many different ways to get the C API development files on your system as there are major Linux distributions. More actually, because you also have the option of the official MySQL binaries from mysql.com: http://dev.mysql.com/downloads/mysql/5.0.html#linux For RPM-based distributions, MySQL comes in several different packages. You need at least the -devel and the -shared packages to build MySQL++. The other binary distributions seem to come in just a single file, presumably with everything included. You can also build from source, in which case you will also get the entire kit and kaboodle. MySQL frequently comes with Linux distributions as well. If your distribution doesn't come with at least MySQL v4.1, I recommend using the official MySQL.com packages instead. MySQL++ can be made to run with 4.0 and older, but it takes some work. On Red Hat type systems with yum, say: # yum install mysql-devel If you want to use rpm directly, you need that package and probably the base mysql package as well. On Debian/Ubuntu type systems, say: $ sudo apt-get install libmysqlclient15-dev The version number is the ABI version of the MySQL C API library. ABI version 15 corresponds to MySQL version 5.0, the recommended stable version as of this writing. Dealing with the Dynamic Linker, ld.so ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ld.so is a system-level program on Linux which is used to run any program that uses shared libraries (lib*.so). Its job is to find the libraries and link them to the base executable so it will run. Because ld.so only looks in a few places for libraries on most systems, a common problem is a program that builds without error but won't run, complaining about libmysqlpp.SOMETHING. There are a number of ways to deal with this. First, you could just configure MySQL++ to install under /usr instead of /usr/local, like system-provided packages: $ ./configure --prefix=/usr This isn't recommended practice when building packages from source, but it does work. Second, you can add the MySQL++ library directory to the LD_LIBRARY_PATH environment variable. This works like the shell's PATH variable: a colon-separated list of directories to search. This is best when the installation directory is something totally uncommon, or you don't have root permissions on the box so you can't do the next option. Finally, the most robust way to tell ld.so about a nonstandard library directory is to put it in /etc/ld.so.conf or in one of the files included from there. Then, run ldconfig as root to rebuild the cache file ld.so uses to find libraries in these nonstandard directories. Running ldconfig isn't necessary for the previous two methods.