fatal error C1076: compiler limit (转)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

问题:fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit

最近在编译一个VC6.0工程(开发环境:win2000+VS6.0+Sp6),在加入预编译头后出现了下面的编译错误提示:
c:/program files/microsoft visual studio/vc98/include/xlocnum(106) :
fatal error C1001: INTERNAL COMPILER ERROR
        (compiler file 'msc1.cpp', line 1794)
         Please choose the Technical Support command on the Visual C++
         Help menu, or open the Technical Support help file for more information
Error executing cl.exe.

 工程中的每个cpp文件编译都没有问题(除了预编译头对应的cpp文件),很是奇怪,于是在网上找了一下,找到下面一种解决办法:

VC6.0的一个编译错误的解决

在window98下使用vc6.0时,如果预编译头文件(stdafx.h)中包含了模板类的头文件,比如atl的头文件时,编译器会报错:
fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)

造成这种问题的原因是编译器分配的内存超过了限制。
解决的办法有三种:
1.给编译器增大内存限制。在project(工程)->setting(设置)->c/c++的project option(工程选项)中,添加/Zm#nn选项,#nn是一个数字,取值最大为2000。默认为100。但是这种方法好像没有什么用处。
2.将模板类头文件从stdafx.h中移出;
3.不使用预编译头文件。project->setting->c/c++,选择所有的.cpp文件,都使用“不使用预编译头文件“的选项。缺点是编译的时候很慢。

http://www.ieasy.org/yuzuo/archives/2005_07.html

还有一个英文的:

I see that while compiling ITEL.CPP it is trying and failing to open
Debug/IODIARY.PCH. I also see that there is no IODIARY.CPP. Exactly how is
IODIARY.PCH supposed to be created?

Turn off precompiled headers for all files in the project, and rebuild. If
the build still fails, then... uh-oh..

Modify the project to use the default STDAFX.CPP/STDAFX.H method of using
PCH. Then, add an empty file STDAFX.H and an empty file STDAFX.CPP to the
project. Then, for each .CPP file, add as the first line #include
"stdafx.h" . Then compile. This should work. If it does not... uh-oh.

In order for pre-compiled headers to work properly each .CPP must have as
its first #include statement the name of the one .H (such as STDAFX.H) that
includes all the "actual" .H's (windows.h, stdio.h, etc.) that should be
included by ALL .CPPs.

That is the important part. You don't usually want EVERYsingle .H that is
included in ANY .CPP in the project to be in STDAFX.H -- you do normally
want windows.h, because it is the big one that can include a lot and is
usually included in every .CPP. Putting just windows.h in stdafx.h (and
removing it from all the .CPPs) can speed up the build tremendously.

http://www.codecomments.com/archive307-2005-3-421145.html

在MSDN中搜索到这种错误相关主题:

*http://lab.msdn.microsoft.com/productfeedback/SearchResults.aspx?text=fatal+error+C1001%3a+INTERNAL+COMPILER+ERROR&stype=1&fields=1&type=0&witId=0&pId=0&category=0&os=0&oslang=0&status=0&msstatus=0&resolution=0&chgdays=&validation=0&votes=&voterating=0&workarounds=False&attachments=False

*http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/c1001.asp

后来把预编译去掉后,Build终于通过了运行了,可这也太慢了,郁闷中……

还不知有没更好的解决办法??同样的工程放在VC++.net2003中却编译顺利通过,运行正常.!!!!

 

vc.net解决:可以在   “项目属性”   中   点选   “linker”,然后点选“system”,可以更改heap的指定值。 

fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit <br />project->setting->c/c++ 在project options里面是下面这样的<br />/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Debug/帝位.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c <br /><br />//我试了一下,发现这个地方是存在空格的,因为那个地方很窄,空格不容易看见, 加进Zm200 阅读详情

相关推荐

keil编译提示Execution region RW_IRAM1 size (65552 bytes) exceeds limit (65536 bytes). Region contains 16

.\Objects\IRCryogen_App.axf: Error: L6220E: Execution region RW_IRAM1 size (65552 bytes) exceeds limit (65536 bytes). Region contains 16 bytes of padding and 0 bytes of veneers (total 16 bytes of link

Studying…… 1万+

itk,错误:use /Zm to specify a higher limit解决办法

fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit Generating Code... fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit Generating Code...

关于 C1001 错误:编译器内部错误解析

有时候,这个错误可能是由于残留的缓存或损坏的临时文件引起的。“C1001” 是 Visual Studio 编译器的一种错误代码,表示编译器在处理源代码时遇到了一个内部的、无法处理的错误。有时候,错误可能是由于编译器本身的某个 bug 或不稳定性引起的。最后,如果以上方法都无效,我们可以尝试将问题代码精简到最小化,并报告给 Microsoft 的支持团队。然而,由于这是一个内部错误,我们无法直接确认导致错误的具体原因。在处理编译错误时,根据具体情况采取适当的解决方案是至关重要的。

带你成为别人眼中的大佬! 8987

use /Zm to specify a higher limit

近来想用一下Xtreme ToolkitPro 界面库,安装后用VC6根据向导 产生一个工程,编译时出现上面的错误,解决办法如下: 工程->设置->c++选项卡,下面有个工程选项(O),在编辑框中参数最后面加上/Zm500即可. 解决方案: 工程->设置->C/C++选项卡 下面有“工程选项”的一个命令区 在命令行的末尾...

anhezhen6831的博客 803

VC6.0的一个编译错误:fatal error C1001: INTERNAL COMPILER ERROR

最近在编译一个VC6.0工程(开发环境:win2000+VS6.0+Sp6),在加入预编译头后出现了下面的编译错误提示:c:/program files/microsoft visual studio/vc98/include/xlocnum(106) : fatal error C1001: INTERNAL COMPILER ERROR        (compiler file msc1.

roger007的专栏 2万+

fatal error C1076: compiler limit

问题:fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit 最近在编译一个VC6.0工程(开发环境:win2000+VS6.0+Sp6),在加入预编译头后出现了下面的编译错误提示:c:\program files\microsoft visual stu...

weixin_34253539的博客 284

afxtempl.h(127) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify

afxtempl.h(127) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit近来想用一下Xtreme ToolkitPro 界面库,安装后用VC6根据向导 产生一个工程,编译时出现上面的错误,解决办法如下:工程->设置->c++选项卡,下面有个

1922

afxtempl.h(127) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specif

afxtempl.h(127) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify 2008-01-11 13:11 1034人阅读 评论(0

Augusdi的专栏 2963

afxtempl.h(127) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit

afxtempl.h(127) : fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit近来想用一下Xtreme ToolkitPro 界面库,安装后用VC6根据向导 产生一个工程,编译时出现上面的错误,解决办法如下:工程->设置->c++选项卡,下面有个

珍爱生命 远离C++ 2375
上一篇: 一个linux典型的select模型更新方法
下一篇: XDeskCal v3.0 注册方法
rishihk
博客等级 码龄20年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值