如何使用新的Visual Studio 2013预览构建增强功能?

Iva*_*rop 23 c++ boost visual-studio

在尝试为Visual Studio 2013 Preview(MSVC12)构建Boost 1.54时,它警告:

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

然后失败并出错:

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

看起来像MSVC11的旧库不兼容.

我真的非常想测试新的IDE/Compiler版本,需要提升.那么,是否可以在新的Visual Studio 2013预览版中使用boost?

Iva*_*rop 24

是.有可能的.

可能的解决方案是

  1. 尝试构建Boost 1.53:不是太新鲜,但由于一些奇怪的原因,它构建得很好.
  2. 如果你真的需要Boost 1.54(新的Log库看起来不错:)),尝试将这个 diff-patch应用到你的Boost 1.54分配中.它最适合修订版84920,但您也可以尝试其他任何版本.请注意,我不是此修补程序的作者.
  3. 尝试使用Subversion获取最新版本: svn co http://svn.boost.org/svn/boost/trunk boost-trunk.在您阅读本文时,问题可以由贡献者修复.

编辑:2013年8月26日

看起来像促进人员解决了这些问题.最新的SVN修订版svn co http://svn.boost.org/svn/boost/trunk boost-trunk很好.谢谢他们!

编辑:2013年12月4日

引用TheArtTrooper评论:

使用Visual Studio 2013 RTM构建1.55.0版本,无需任何其他补丁

快乐的提升!


The*_*per 11

如果使用自动链接提升功能,则还需要修补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__)
Run Code Online (Sandbox Code Playgroud)

  • 使用Visual Studio 2013 RTM构建1.55.0版本,无需任何其他补丁. (2认同)