【发布时间】:2021-08-23 09:56:42
【问题描述】:
我正在使用一个名为 Symbols 的软件进行工程建模。它为模型生成一个 .cpp 文件,以及一个用于命令行编译的 .bat 文件。 它使用编译器生成一个 .dll 文件,然后回调该文件以完成模拟。
它使用 Visual C++ 6.0 编译器。我收到错误 xxx.cpp(64952):致命错误 C1076:编译器限制:达到内部堆限制;使用 /Zm 指定更高的限制
我尝试将/Zm500 添加到 bat 文件中,但没有产生任何变化。有一些suggestions online 可以使用/MP。试过了。那也没用。我还尝试添加一个用户定义的环境变量 CL,其值为#/Zm500/Zm500=/Zm500 等,但这些都不起作用。
我不是编程专家,无法对代码进行太多编辑,因为它是自动生成的。
有人可以帮忙吗?为什么/Zm 不起作用?我应该做点别的吗?
我在 Win10 机器中使用 Visual Studio 6.0。 .cpp 文件有 151,000 行代码。
在.bat文件的内容下方添加
@ECHO OFF
ECHO --------------------Configuration: 8 Coil No MC 45L 1Rd - Win32 Release--------------------
SET OLDPATH=%PATH%
PATH="C:\WINDOWS";"C:\WINDOWS\system32";"C:\WINDOWS\COMMAND";"F:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin";"F:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin";"F:\Program Files (x86)\Microsoft Visual Studio\Common\Tools";"F:\Program Files (x86)\Microsoft Visual Studio\Common\Tools\WinNT";
ECHO Compiling...
CL.EXE /Zm500 /MP /nologo /I "D:\Symbols\SYMBOLS Sonata\Bin" /I "D:\Bondgraph_Works\Header_Files" /I "F:\Program Files (x86)\Microsoft Visual Studio\VC98\Include" /I "F:\Program Files (x86)\Microsoft Visual Studio\VC98\ATL\Include" /I "F:\Program Files (x86)\Microsoft Visual Studio\VC98\MFC\Include" /MT /W3 /GX /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /Fo"8 Coil No MC 45L 1Rd.obj" /Fp"8 Coil No MC 45L 1Rd.pch" /Fd"" /FD /c "8 Coil No MC 45L 1Rd.cpp"
ECHO Linking...
LINK.EXE /libpath:"D:\Symbols\SYMBOLS Sonata\Bin" /libpath:"D:\Symbols\Borland\BCC55\Lib" /libpath:"F:\Program Files (x86)\Microsoft Visual Studio\VC98\Lib" /libpath:"F:\Program Files (x86)\Microsoft Visual Studio\VC98\MFC\Lib" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /machine:I386 /def:"8 Coil No MC 45L 1Rd.def" /out:"8 Coil No MC 45L 1Rd.dll" "8 Coil No MC 45L 1Rd.obj" "Library.Lib"
PATH=%OLDPATH%
ECHO End of Compilation.
【问题讨论】:
-
这是针对当前编译器的,我无权访问 VC 6.0 文档 - "...如果编译器发出 C1076 错误消息,则随附的 C3859 消息会指定因子参数使用 /Zm 编译器选项重新编译时使用...." 你收到
C3859消息了吗? -
@RichardCritten 不,我没有收到 C3859 消息。这就是我尝试 /MP 的原因,因为在一个文档中提到如果 C3859 不伴随 /MP 将被使用。
标签: c++ visual-c++ command-line compiler-errors visual-studio-6