打开 ogremain 项目属性页
将配置属性->C++->命令行->附加选项
的/Zm1000 改为 /Zm500 即可
附上/Zm 编译选项介绍
/Zm(指定预编译头的内存分配限额)
Visual Studio 2010
其他版本
- Visual Studio 2008
- Visual Studio 2005
确定class="superseo">编译器分配的用于构造预编译头的内存量。
复制
/Zmfactor
参数
factor
一个比例因子,确定编译器用于构造预编译头的内存量。
factor factor
备注
在早期版本的 Visual C++ 中,编译器使用几个离散堆,每个堆都有一定的限制。 当前,编译器可根据需要动态增加堆,最多可增加到总堆大小限制,并且只需要固定大小的缓冲区即可构造预编译头。 因此,很少需要 /Zm 编译器选项。
如果在您使用 /Zm 编译器选项时,编译器用完堆空间,发出 C1060 错误消息,则您可能保留了太多的内存。 可考虑移除 /Zm 选项。 如果编译器发出 C1076 错误消息,则伴随的 C3859 消息会指定您在使用 /Zm 编译器选项重新编译程序时应使用的 factor
下表显示当您假定默认预编译头缓冲区的大小为 75 MB 时,factor
factor | 内存分配限制 |
10 | 7.5 MB |
100 | 75 MB |
200 | 150 MB |
1000 | 750 MB |
2000 | 1500 MB |
设置内存分配限制的其他方式
在 Visual Studio 开发环境中设置 /Zm 编译器选项
- 打开该项目的“属性页”对话框。 有关详细信息,请参见 如何:打开项目属性页。
- 单击“C/C++”文件夹。
- 单击“命令行”属性页。
- 在“附加选项”框中键入编译器选项。
以编程方式设置 /Zm 编译器选项
- 请参见AdditionalOptions。
错误 C1060
Visual Studio 2010
其他版本
- Visual Studio 2008
- Visual Studio 2005
编译器的堆空间不足
操作系统或运行库无法满足内存要求。
若要修复此错误,请尝试以下可能的解决方案
- 如果编译器还发出错误 C1076 和 C3859,请使用 /Zm 编译器选项来降低内存分配限制。 如果您减少剩余内存分配,则会增加可用于应用程序的堆空间。如果已设置了 /Zm 选项,请尝试移除它。 堆空间可能会用完,因为选项中指定的内存分配限制太高。 如果您移除 /Zm 选项,则编译器将使用默认限制。
- 增加 Windows 交换文件的大小。
- 关闭其他正在运行的程序。
- 消除不需要的包含文件。
- 消除不需要的全局变量,例如,动态分配内存而不是声明一个大数组。
- 消除未使用的声明。
- 将当前文件拆分成更小的文件。