error C3859: 超过了 PCH 的虚拟内存范围

原创 2014年03月03日 11:22:01
项目出现如下错误
1>D:\program files\VS2012\VC\include\xmemory0(605): error C3859: 超过了 PCH 的虚拟内存范围;请使用“-Zm110”或更大的命令行选项重新编译
 1>D:\program files\VS2012\VC\include\xmemory0(605): fatal error C1076: 编译器限制 : 达到内部堆限制;使用 /Zm 指定更高的限制

解决:选择modules文件夹中opencv-stitching项目属性-》配置属性-》C/C++-》命令行 
添加 /Zmnumber,如/Zm1000
其中number是自己想要指定的比例系数;  
 可以指定的值是:10,100,200,1000,2000,对应的memory alloction是5.0M,50MB,100MB,500MB,1000MB; 

在早期的 Visual C++ 版本中,编译器使用了大量的离散堆,每个堆都有一定的限制。编译器现在可以根据需要使堆动态增大,只要求分配给预编译头的内存的大小固定不变。只有在极少数涉及非常大或非常复杂的程序的情况下,才会导致超出预编译头的堆大小限制。如果程序超过这些限制,请使用 /Zm 调整所有限制的总大小。

大多数情况下,并不需要使用此编译器选项。如果编译程序时出现错误信息,并且该错误信息报告了 /Zm 应该具有的值,则使用此选项。
MSDN对这个作如下解释:

“/Zm(指定预编译头的内存分配限制)
     确定编译器对预编译头的内存分配限制。
     在早期的 Visual C++ 版本中,编译器使用了大量的离散堆,每个堆都有一定的限制。编译器     现在可以根据需要使堆动态增大,只要求分配给预编译头的内存的大小固定不变。只有在极     少数涉及非常大或非常复杂的程序的情况下,才会导致超出预编译头的堆大小限制。如果程     序超过这些限制,请使用 /Zm 调整所有限制的总大小。


第一次遇到fatal error C1076,原来是栈太小

fatal error C1076 栈太小的问题 转载自:http://blog.csdn.net/crybird/article/details/3892561   前两天引入一个COM组...
  • wsh6759
  • wsh6759
  • 2012年04月04日 09:38
  • 885

Hadoop运行因为container的内存大小而抛错

本文转载自:http://blog.chinaunix.net/uid-25691489-id-5587957.html Hadoop运行中抛出如下异常: Container [pid=41355,c...
  • u012042963
  • u012042963
  • 2016年11月09日 14:43
  • 3020

yarn container内存调优——防止container被kill

今天散仙写了个MapReduce作业,目的是读数据库里面多个表的数据,然后在JAVA中根据具体的业务情况做过滤,并把符合数据的结果写入到HDFS上,在Eclipse里面提交作业进行调试的时候,发现在R...
  • a11123939
  • a11123939
  • 2015年01月25日 16:59
  • 3756

如何在Java中分配超过-Xmx限制的内存

原文地址:http://it.deepinmind.com/java/2014/03/21/%E5%A6%82%E4%BD%95%E5%9C%A8Java%E4%B8%AD%E5%88%86%E9%8...
  • Mr__fang
  • Mr__fang
  • 2014年03月21日 11:23
  • 2202

error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译

在vs中使用boost的时候,在stdafx中包含的boost头文件,然后就出现这个错误。 经过查找就是stdafx中包含boost头文件造成的。 解决办法如下: 产生的原因: 为了加...
  • u010697897
  • u010697897
  • 2016年07月06日 15:26
  • 437

查看、修改linux系统的最大链接数限制、文件描述符限制、端口范围限制、虚拟内存等

由于socket在linux中也是用文件描述符来表示,因此最大连接数的修改与文件描述符的限制是同一个问题, 1、查看当前文件描述符的限制数目的命令:  ulimit -n   2、修改文件描述符的限制...
  • hjx_1000
  • hjx_1000
  • 2013年10月10日 16:48
  • 4400

查看、修改linux系统的最大链接数限制、文件描述符限制、端口范围限制、虚拟内存等

一、修改最大连接数 1、查看当前文件描述符的限制数目的命令: ulimit -n 2、修改文件描述符的限制数目 2.1 临时改变当前会话: ulimit -n 65536 2.2 永久变更...
  • rivarola
  • rivarola
  • 2014年11月11日 22:09
  • 381

error C3859关于这个错误?

今天在建立一个工程遇到了这个问题:error C3859: 超过了 PCH 的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译fatal error C1076: 编译器限制 : 达到内部...
  • machao_dean
  • machao_dean
  • 2011年03月04日 10:42
  • 1453

GNU C Library 3 Virtual Memory Allocation And Paging 虚拟内存分配和页面调度——摘要

文档地址:https://www.gnu.org/software/libc/manual/html_node/Memory.html#Memory   3 虚拟内存分配和分页   3.1 进...
  • zahuopuboss
  • zahuopuboss
  • 2013年03月19日 17:30
  • 1282

c程序在虚拟内存中的地址顺序

c程序在虚拟内存中的地址从低地址到高地址的顺序依次是: text段(代码区)、.rodata段(常量区)、.data段(已初始化的全局变量区)、.bss段(未初始化的全局变量区)、堆、动态库映射...
  • u011081315
  • u011081315
  • 2016年05月22日 10:25
  • 232
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:error C3859: 超过了 PCH 的虚拟内存范围
举报原因:
原因补充:

(最多只允许输入30个字)