Ulf Wendel

Connector/C++: 1.1.0 uses Boost

Andrey mentioned it long ago: MySQL Connector/C++ 1.1.0 makes use of some Boost components. The change impacts those who compile the MySQL driver for C++ from source. You need to have Boost 1.34.0 or newer installed on your build system. Users of a binary distribution do not need to take any action. Boost is not required when using the pre-compiled binaries. Nor is Boost needed to run client applications that make use of Connector/C++.

Boost is a highly regarded cross-platform library for C++ development used by many projects, for example OpenOffice.org. Some parts of Boost are included in the C++ Standards Committee’s Library Technical Report (TR1) and will be in the new C++0x Standard. Several other parts are either additions to TR1 or proposed for TR2. Boost is licensed under the terms of the Boost Software License which allows both commercial and non-commercial use.

Connector/C++ 1.1.0 uses a couple of "headers only" components. Among them the Any and Variant datatypes and some useful (smart|auto) pointers. They are all implemented as templates. Therefore you do not need to have any Boost binaries installed for building the driver nor does the driver link any binaries from Boost. You just need to have some Boost header files available for the build.

Boost installation

In version 1.1.0 of the MySQL driver for C++ we use only basic functionality of Boost. Boost 1.34.0, released in May 2007, has everything we need. If you operation system vendor has pre-build Boost 1.34.0+ packages to offer, go for them. If not, please check the Boost documentation how to install Boost from source.

At the time of writing, boost.org itself does not offer pre-build binaries for Windows platforms. Windows downloads are made available by a third-party. However, Connector/C++ uses header files only which makes it easy going to install Boost from source. You will not have to compile anything during the installation, and if your Visual Studio (Express) setup has been good enough to compile Connector/C++ 1.0.5, the setup should also be able to handle a Boost source installation. The only pre-build binary I recommend downloading for Windows is bjam (Boost Jam), the build tool used by the Boost Build System.

If you choose to do a source installation of Boost, you can disable each and every Boost component that requires compiling binaries because Connector/C++ needs only some few "headers only" components. We use the following bjam line for installing Boost on our build systems:

bjam -q 
  --without-date_time --without-filesystem --without-graph 
  --without-iostreams --without-math --without-mpi
  --without-program_options --without-python 
  --without-regex --without-serialization --without-signals 
   --without-system --without-test --without-thread


.oO( Right, if Boost had an option --without-everything or --headers-only, we would use it. )

Comments are closed.