How do I build boost with new Visual Studio 2013 preview?
When trying to build Boost 1.54 for Visual Studio 2013 Preview (MSVC12) it warns:
Unknown compiler version - please run the configure tests and report the results
and then fails with error:
boost_1_54_0\boost/iterator/detail/facade_iterator_category.hpp(166) : error C2039: 'assert_not_arg' : is not a member of 'boost::mpl'
And looks like old libs from MSVC11 are not compatible.
I really-really want to test new IDE/Compiler version and need boost. So, is it possible to use boost with new Visual Studio 2013 Preview?
Solution 1:
Yes. It is possible.
Possible solutions are:
- Try build Boost 1.53: not too fresh, but for some strange reason it builds just fine.
- If you really-really need Boost 1.54 (new Log library looks good :) ), try to apply this diff-patch to your Boost 1.54 distributive. It is best suited for revision 84920, but you can try any other too. Note that I am not author of this patch.
- Try to get latest revision with Subversion:
svn co http://svn.boost.org/svn/boost/trunk boost-trunk
. For a time when you reading this, issue can be already fixed by contributors.
EDIT: 26 aug 2013
Looks like boost folks fixed these issues. Latest SVN revision svn co http://svn.boost.org/svn/boost/trunk boost-trunk
builds fine. Thanks to them!
EDIT: 4 dec 2013
Quote from TheArtTrooper comment:
Boost 1.55.0 builds with the Visual Studio 2013 RTM without any additional patches
Happy boosting!
Solution 2:
If you use the auto-linking boost feature, you'll also need to patch boost/config/auto_link.hpp. I changed the file to:
// vc10:
# define BOOST_LIB_TOOLSET "vc100"
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
// vc11:
# define BOOST_LIB_TOOLSET "vc110"
# elif defined(BOOST_MSVC)
// vc12:
# define BOOST_LIB_TOOLSET "vc120"
# elif defined(__BORLANDC__)
Solution 3:
I was able to build Boost 1.54 (and a project depending on it) thanks to several patches provided by Lars Viklund. At the time of the writing, the first two of the patches were committed to the SVN - revision 85177.