编译器堆空间不足

Compiler is out of heap space

本文关键字:空间 编译器      更新时间:2023-10-16

我正在尝试移植一个用C++编写的插件,它实际上做了很多事情,所以有很多类,当然也有很多代码!

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

我也尝试了互联网上关于内存分配限制和堆栈溢出的常见答案。他们似乎都不适合我,所以我在这里。

一些可能很重要的事情。该插件广泛使用以下库:FreeImage &原布夫-2.4.1p.s. 我使用 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

我迷路了,谁能指出我正确的方向?多谢!

我在VC++ 2015最新更新(更新3(中遇到了同样的问题。 最终,我发现关闭预编译的标头可以避免这个问题。

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

所以有 2 种解决方法。首先,我可以简单地注释掉提供的标题描述,这似乎很神奇。

其次,由于第一个选项听起来不太合适,我只是重新编译了整个库,它起作用了。我猜,这是编译器版本不匹配之类的。但这似乎工作正常..