如何使用新的Visual Studio 2013预览版构建boost

How do I build boost with new Visual Studio 2013 preview?

本文关键字:构建 boost 2013 Studio 何使用 Visual      更新时间:2023-10-16

当尝试为Visual Studio 2013预览版(MSVC12)构建Boost 1.54时,它会发出警告:

未知编译器版本-请运行配置测试并报告结果

然后失败并出现错误:

boost_1_54_0\boost/iterator/detail/facade_iterator_category.hpp(166):错误C2039:"assert_not_arg":不是"boost::mpl"的成员

而且看起来MSVC11的旧库是不兼容的。

我真的很想测试新的IDE/编译器版本,需要改进。那么,有可能在新的Visual Studio 2013预览版中使用boost吗?

是。这是可能的。

可能的解决方案有:

  1. 尝试构建Boost 1.53:不太新鲜,但由于一些奇怪的原因,它构建得很好
  2. 如果你真的真的需要Boost 1.54(新的日志库看起来不错:)),试着将这个diff补丁应用到你的Boost 1.54。它最适合84920版本,但您也可以尝试其他版本。请注意,我不是这个补丁的作者
  3. 尝试使用Subversion获取最新修订:CCD_ 1。当你们读到这篇文章的时候,这个问题可能已经被贡献者解决了

编辑:2013年8月26日

看起来助推人员解决了这些问题。最新SVN修订版svn co http://svn.boost.org/svn/boost/trunk boost-trunk构建良好。感谢他们!

编辑:2013年12月4日

引用TheArtTrooper评论:

Boost 1.55.0构建与Visual Studio 2013 RTM没有任何附加补丁

加油快乐!

如果您使用自动链接boost功能,您还需要修补boost/config/auto_link.hpp。我将文件更改为:

    // 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__)

由于Lars Viklund提供了几个补丁,我能够构建Boost 1.54(以及一个依赖它的项目)。在撰写本文时,前两个补丁已提交给SVN修订版85177。

我在Visual Studio 2013 Update 4和Boost 1.54中遇到了这个问题,更新到Boost 1.57修复了它。