【问题标题】:Boost::Serialization VS2015 compile error in Release Mode MnlyBoost::Serialization VS2015 在 Release Mode Mnly 编译错误
【发布时间】:2016-02-01 19:37:57
【问题描述】:

我正在构建一个使用 Boost:Serialization 的项目,并且在链接过程中出现错误,但只有在发布模式下,错误是:

致命错误 C1001:编译器发生内部错误。

&

致命错误 C1002:编译器在传递 2 中的堆空间不足

我只在 Windows 8 和 10 上使用 Visual Studio 2015 中内置的 v140 工具链在发布模式下构建时遇到这些错误。

如果使用 LLVM 2014 工具链构建,则构建时不会出现错误。

如果我注释掉 boost::serialization 的东西,代码将在 Release 模式下编译,所以我也假设它与 v140 如何优化模板化序列化代码有关,但崩溃发生在链接阶段,而不是在编译时...

以前有没有人遇到过这些错误?或者看到会在调试中构建但在发布中不会构建的代码?

谢谢!

【问题讨论】:

标签: c++ serialization boost visual-studio-2015


【解决方案1】:

错误几乎说明了一切:“致命错误 C1002:编译器在第 2 步中的堆空间不足” - 它在实例化和尝试内联 Boost 序列化的许多模板时超出了资源限制。新的链接时优化功能完全有可能在这里出错。

因此,如果已启用,请尝试禁用它:/GL-

【讨论】:

    猜你喜欢
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2018-04-10
    • 1970-01-01
    • 2016-11-20
    相关资源
    最近更新 更多