error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译
编译 ORB_SLAM的Release版本时,出现了此问题:
错误 2 error C3859: 超过了 PCH 的虚拟内存范围;请使用“-Zm465”或更大的命令行
修改方法:
1. 找到 工程->属性->c/c++->命令行->其他选项
     2. 输入/Zm100,其中后面的数字可以更大
原因:
为了加快boost的编译,使用的预编译头。而且加的boost的头文件比较多,导致pch文件超过了默认值。
定义:
/Zm(指定预编译头的内存分配限额):确定编译器分配的用于构造预编译头的内存量。格式:/Zmfactor。
factor:一个比例因子,确定编译器用于构造预编译头的内存量。
factor 参数是编译器定义的工作缓冲区的默认大小所占的百分比。 factor 参数的默认值是 100 (%),但您可以指定更大或更小的数量。 在早期版本的 Visual C++ 中,编译器使用几个离散堆,每个堆都有一定的限制。 当前,编译器可根据需要动态增加堆,最多可增加到总堆大小限制,并且只需要固定大小的缓冲区即可构造预编译头。 因此,很少需要 /Zm 编译器选项。
如果在您使用 /Zm 编译器选项时,编译器用完堆空间,发出 C1060 错误消息,则您可能保留了太多的内存。 可考虑移除 /Zm 选项。 如果编译器发出 C1076 错误消息,则伴随的 C3859 消息会指定您在使用 /Zm 编译器选项重新编译程序时应使用的 factor 参数。
factor的值     内存分配限制 
10                7.5 MB
100              75 MB
200              150 MB
1000            750 MB
2000            1500 MB
error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm33”或更大的命令行选项重新编译的更多相关文章
- 错误3 error C3859: 超过了 PCH 的虚拟内存范围;请使用“-Zm120”
		在工程上单击右键,属性,C/C++,最后一项,命令行,在里面/Zm200或者编译器提示的大小解决. 
- 【VS开发】fatal error C1853: "Debug\sift.pch"预编译头文件来自编译器的早期版本
		fatal error C1853: "Debug\sift.pch"预编译头文件来自编译器的早期版本 <pre id="best-content-12991040 ... 
- fatal error C1902: 程序数据库管理器不匹配;请检查安装解决
		http://blog.sina.com.cn/s/blog_9f4bc8e301015uhz.html 1.错误提示:VS2008编译错误fatal error C1902: 程序数据库管理器不匹配 ... 
- 【c语言】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
		题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 比如输入一个长度为9的数组{1,2.3.2,2.2.5,4.2}, 因为数组中数字2出现了5次,超过数组的长度的一半,因此输出2 ... 
- vs2008编译错误fatal error C1902: 程序数据库管理器不匹配;请检查安装解决
		重装了本本上的Xp系统,如往常一样,升级,装杀毒软件,开发工具.一些进行的非常顺利.然而,在我打开VS2008准备耕作的时候,尽然出现了一邪恶的错误提示:vs2008编译错误fatal error C ... 
- Maven [ERROR] 不再支持源选项 5,请使用 7 或更高版本的解决办法
		刚刚学Maven,当我点击test时 就出现了这两个错误: [ERROR] 不再支持源选项 5.请使用 7 或更高版本.[ERROR] 不再支持目标选项 5.请使用 7 或更高版本. 后来在看到这篇文 ... 
- error C1853: “Debug\BigBuffer.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
		<pre id="best-content-1299104064" mb-10"="" style="font-size: 14px; ... 
- fatal error C1859: “Release\IWBServer.pch”意外的预编译头错误,只需重新运行编译器就可能修复此问题
		解决方案 1. 创建预编译头(/Yc) -- > stdafx.cpp 使用预编译头(/Yu) 2. complie 3. 使用预编译头(/Yu) -- ... 
- C语言:#error命令,阻止程序编译
		#error 指令用于在编译期间产生错误信息,并阻止程序的编译,其形式如下: #error error_message 例如,我们的程序针对 Linux 编写,不保证兼容 Windows,那么可以这样 ... 
随机推荐
- 53. Maximum Subarray(动态规划)
			Find the contiguous subarray within an array (containing at least one number) which has the largest ... 
- linux学习2-压缩与解压
			1.zip 打包文件件 $ zip -r -q -o shiyanlou.zip /home/shiyanlou $ du -h shiyanlou.zip $ file shiyanlou.zip ... 
- bupt summer training for 16 #4 ——数论
			https://vjudge.net/contest/173277#overview A.平方差公式后变为 n = (x + y)(x - y) 令 t = x - y ,变成 n = (t + 2x ... 
- [置顶]
        Java基础学习总结(34)——HTTP协议详解
			一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ... 
- 清北学堂模拟赛d1t4 一道图论好题(graph)
			题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,不仅有边权还有点权. LYK给出了一个子图的定义,一张图G’={V’,E’}被称作G的子图,当且仅当 ·G ... 
- Latex 排版技巧 1——数学公式对齐
			在我们排版数学推导式时,非常多时候我们希望可以让公式的等号对齐 这样更接近人的数学推导习惯 例如以下图效果图 使用 begin{aligned} end{aligned}将所需对齐的数学公式代码块包起 ... 
- 在mac osX下安装openCV,used for python
			OpenCV是个开源的图像处理库,里面的内容多多. 想了解很多其它,请自行百度咯~ 篇blog是记录在mac下.安装openCV.然后使用python来引用openCV库. 环境是: Python 2 ... 
- nginx启动访问
			修改配置文件后,查看配置是否ok 以下是有错误的 以下是ok的 nginx/sbin/nginx -t 启动查询: /usr/local/nginx/sbin/nginx -c /usr/local/ ... 
- 欢聚时代校园招聘java开发一面经历
			收到yy短信通知笔试通过后隔天就一面了,面试时间是下午1点半,跟另外一个同学在1点半的时候已经到了目的酒店,发现面试都集中在一个大厅,摆了非常多桌椅,由不同的面试关在面试.等到2点多的时候才到我.先说 ... 
- web 前端学习笔记
			<!DOCTYPE HTML> <head> <style type="text/css"> body { background: #ff00 ... 
