Cross compiling Boost V1.50 from Ubuntu 12.04 to Windows

I've recently updated both my server setup and updated to new version of Boost, and so needed to change some of my scripts. Here are the notes:

  • The default rules for searching for the user-config file seem to have changed. Always use the --debug-configuration option to bjam to make sure you are making changes to the right configuration file.
  • I needed to specify the Windows resource compiler. Therefore the toolset configuration line which goes into the user-config file is using gcc : mingw : i586-mingw32msvc-g++ : <rc>/usr/bin/i586-mingw32msvc-windres ;
  • I had some trouble with overlapping targets (i.e., same output target names with different build options). I resolved these by specifying the exact configuration to be built, i.e., target-os=windows link=shared threading=multi runtime-link=shared variant=release to bjam
  • I did not want to build Python and wave libraries and excluded them using options --without-python --without-wave

With these adjustments everything seems to work fine and cross-compilation from Linux remains by far the best way to build Windows executable!