Boost::Serialization在VS2015 Release模式下编译错误 Mnly

3
我正在构建一个项目,其中使用了Boost:Serialization,但在链接过程中出现错误,只有在Release模式下才会出错,错误如下:
致命错误 C1001:编译器发生内部错误。
&
致命错误 C1002:编译器在第二阶段中用完堆空间。
仅在使用v140工具链,在Visual Studio 2015上构建时,才会出现这些错误,无论是在Windows 8还是10上都是如此。如果使用LLVM 2014工具链构建,则不会出现任何错误。
如果我注释掉boost::serialization的内容,则代码将能够在Release模式下编译,因此我认为问题与v140优化模板序列化代码的方式有关,但崩溃发生在链接阶段,而不是编译阶段......
是否有人遇到过这些错误?或者看到过在调试模式下可以构建但在发布模式下却不能的代码?
谢谢!

你尝试过使用64位工具链吗?还有一种指定Visual Studio项目的方法,在这里的评论中有描述:http://blogs.msdn.com/b/vcblog/archive/2013/10/30/the-visual-c-linker-best-practices-developer-iteration.aspx。 - bogdan
1个回答

0

这个错误基本上已经说明了一切:"fatal error C1002: compiler is out of heap space in pass 2" - 在实例化和尝试内联 Boost Serialization 的许多模板时,它超出了资源限制。很可能是新的链接时间优化能力在这里出了问题。

请参见

因此,如果启用了该功能,请尝试禁用它:/GL-


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接