编译器没有堆空间

时间:2017-03-31 12:19:36

标签: c++ visual-studio compiler-errors

我正在尝试移植一个用C ++编写的插件,它实际上做了很多东西,所以有很多类和课程也有很多代码!

但是当我尝试编译插件时,编译器会抛出以下错误:致命错误C1060:编译器超出堆空间。如果我检查我的任务管理器,它会显示内存上还剩下一些空间。我甚至尝试重新启动。

我在memory allocation limitstack overflow previously asked questions上尝试了互联网上的常用答案。他们似乎都没有为我工作,所以我在这里。

一些可能很重要的事情。该插件广泛使用以下库: FreeImage& protobuf的-2.4.1 附:我使用VS2012编译器编译了源代码。 使用64位计算机

错误显示在此代码的第二行:

#if GOOGLE_PROTOBUF_VERSION < 2004000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2004001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

我迷失了,有人能指出我正确的方向吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

我在VC ++ 2015最新更新(Update 3)时遇到了同样的问题。最终我得出结论,关闭预编译的标题避免了这个问题。

这是一个小项目,因此构建时间的差异对我们来说很小。如果您有一个大型项目并且必须使用预编译的标题,那么您可以尝试删除其中的一些。

答案 1 :(得分:0)

因此有2次解决方法。 首先,我可以简单地注释掉提供的标题描述,这似乎神奇地起作用。

第二,因为,第一个选项听起来不太合适,我只是重新编译了整个库,并且它有效。我猜,这是编译器版本不匹配的东西。但这似乎工作正常..