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

项目出现如下错误
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 调整所有限制的总大小。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值