Boost C++ Libraries Home Libraries People FAQ More



Boost.CGI is a header-only library so there is no source to build. However, the library depends on a few Boost libraries (listed below), which for now should be built. Support for sessions also adds Boost.Serialization as a dependency.


Boost-related elements can be downloaded from the Boost download site at sourceforge.

[Note] Note

"invoking bjam" implies calling "bjam toolset=<your_toolset>", where "<your_toolset>" is one of these. More information can be found here (these are general instructions for building Boost and configuring bjam. Following these instructions will also 'tick' the first two requirements below.

Table 1.1. What you need




Boost.Jam - bjam


Download 'Boost.Jam' (precompiled versions are highly recommended) and make it accessible to your system's PATH.

Boost.System / Boost.Filesystem / Boost.Regex / Boost.Thread / Boost.Date_time


1. Download the latest Boost distro, 'boost'.

2. Set the environment variable BOOST_ROOT on your system to the download location.

3. Go to the directory BOOST_ROOT and invoke bjam (see above), passing it --with-system --with-regex --with-date_time --with-filesystem --build-type=complete install on the command line. his should finish without any failures.

For complete instructions, see the Boost Getting Started guide.



These are built by going to the libs/cgi/doc directory and invoking bjam (see above). You can then read the docs by directing your browser to libs/cgi/index.html

Unit tests


Tests can be run by going to the libs/cgi/test directory and invoking bjam (see above). Boost.CGI aims to be cross-platform, but not all platforms are available for testing. If any tests fail, problems can be reported to here.



There are some examples provided with the library in the libs/cgi/example directory. They are useful for learning the library or testing your server configuration, something that can be tricky. They can all be found in the lib/cgi/example directory. Invoking bjam in the example directory should build all examples whereas invoking bjam in each sub-directory will build only the example contained therein.

[7] The version of Boost.Uuid in Boost 1.42 reportedly does not create truly random Uuids, so you are recommended to use the version of Boost.Uuid distributed with Boost 1.43 or above.