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

C++ 如何使用新的Visual Studio 2013预览版构建boost?,c++,visual-studio,boost,C++,Visual Studio,Boost,尝试为(MSVC12)生成时,它会发出警告: 未知的编译器版本-请运行配置测试并报告 结果 然后失败并出现错误: boost\u 1\u 54\u 0\boost/iterator/detail/facade\u iterator\u category.hpp(166): 错误C2039:“assert_not_arg”:不是“boost::mpl”的成员 看起来MSVC11中的旧LIB不兼容 我真的很想测试新的IDE/编译器版本,需要升级。那么,是否可以将boost与新的Visual Stud

尝试为(MSVC12)生成时,它会发出警告:

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

然后失败并出现错误:

boost\u 1\u 54\u 0\boost/iterator/detail/facade\u iterator\u category.hpp(166): 错误C2039:“assert_not_arg”:不是“boost::mpl”的成员

看起来MSVC11中的旧LIB不兼容

我真的很想测试新的IDE/编译器版本,需要升级。那么,是否可以将boost与新的Visual Studio 2013预览版一起使用?

可以。这是可能的

可能的解决办法是:

  • 尝试构建:不太新鲜,但出于某些奇怪的原因,它构建得很好
  • 如果您真的需要Boost1.54(新的日志库看起来不错:),请尝试将diff补丁应用于Boost1.54分布式服务器。它最适合修订版84920,但您也可以尝试任何其他版本。请注意,我不是此修补程序的作者
  • 尝试使用以下工具获取最新版本:
    svn公司http://svn.boost.org/svn/boost/trunk 增压行李箱
    。在阅读本文时,撰稿人可能已经解决了这个问题
  • 编辑:2013年8月26日

    看起来boost的人解决了这些问题。SVN最新版本<代码>SVN公司http://svn.boost.org/svn/boost/trunk 增压主干构建良好。感谢他们

    编辑:2013年12月4日

    引用机场士兵的评论:


    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__)
    
    //vc10:
    #定义BOOST_LIB_工具集“vc100”
    #elif定义(BOOST_MSVC)和&(BOOST_MSVC<1800)
    //vc11:
    #定义BOOST_LIB_工具集“vc110”
    #定义的elif(BOOST_MSVC)
    //vc12:
    #定义BOOST_LIB_工具集“vc120”
    #elif已定义(_BORLANDC__;)
    
    多亏了你,我才得以构建Boost 1.54(以及一个依赖于它的项目)。在撰写本文时,前两个补丁已提交到SVN-修订版85177。

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

    您能否解释一下为什么补丁中需要以下内容:
    如果MSC_VER<1800&(_MSC_FULL_VER<170051025 | | |已定义(BOOST_MSVC_ENABLE_2012_NOV_CTP))
    这里的补丁只添加了检查MSVC版本是否低于1800(Visual Studio 2013,又名“msvc12”),并将其与原始检查相结合。原始行检查MSVC是否包含“更新3”或者11月的编译器更新。如果版本检查失败,boost将被限制为不使用以前的msvc版本不支持的某些C++11功能。请注意,我不是此修补程序的自动修复者(我会将此添加到答案中)好的,我明白了。实际上,原始条件似乎比添加的
    \u MSC\u VER<1800
    更强,因此似乎没有必要对这行进行修补。是的,它确实是冗余的=)我已经编译了1_55_0发布tar ball,其中有一个小补丁:使用Visual Studio 2013 RTM构建Boost 1.55.0版本,没有任何附加补丁。