编译器堆空间不足
Compiler is out of heap space
我正在尝试移植一个用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 种解决方法。首先,我可以简单地注释掉提供的标题描述,这似乎很神奇。
其次,由于第一个选项听起来不太合适,我只是重新编译了整个库,它起作用了。我猜,这是编译器版本不匹配之类的。但这似乎工作正常..
相关文章:
- 从类型列表中递归删除重复项会导致编译器堆空间错误 (VS2017)
- 编译器堆空间不足
- 名称名称空间和类模板之间的冲突:不同的编译器行为
- 编译器对不必要的命名空间发出警告
- Qt:编译器堆空间不足
- 数据类型对编译器来说何时意味着超过其存储空间
- 什么是“使用命名空间 std;”,为什么我需要它来编译具有最新C++编译器的程序
- 编译器是否可以基于命名空间生成调试信息
- 如何定义名称空间以及编译器如何处理名称空间
- 具有名称空间的编译器的有趣行为
- C++编译器错误;我想是命名空间问题
- 在命名空间中向前声明类引发编译器错误
- 当内部作用域名称不起作用时,为什么编译器不采用命名空间名称?
- 告诉编译器我不再使用c++中的命名空间
- "私有"访问修饰符是否为编译器提供了更大的优化空间?
- 编译器错误 C2653:不是类或命名空间名称
- C++编译器实现命名空间
- 常量正确性是否为编译器提供了更多的优化空间
- 为什么编译器在将空间作为Character时执行无限循环
- 命名空间、类和编译器顺序