当尝试为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吗?
是。这是可能的。
可能的解决方案有:
- 尝试构建Boost 1.53:不太新鲜,但由于一些奇怪的原因,它构建得很好
- 如果你真的真的需要Boost 1.54(新的日志库看起来不错:)),试着将这个diff补丁应用到你的Boost 1.54。它最适合84920版本,但您也可以尝试其他版本。请注意,我不是这个补丁的作者
- 尝试使用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修复了它。