You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CL.EXE(v8.00c)编译文件时出现‘内存不足’错误求助

解决VC++ 1.52c CL.EXE编译16位代码时的“Out of memory”错误

问题根源

VC++ 1.52c是16位时代的编译器,在64位Windows系统的NTVDM模拟环境中,内存分配受到严格限制,即使是极简代码也可能触发内存不足报错。

实用解决方法

  • 调整编译器内存配置
    找到VC152安装目录下BIN文件夹中的CL.INI文件,打开后定位到[Compiler]段落,添加或修改以下配置:

    HeapSize=8192
    StackSize=4096
    

    该配置会调整编译器的堆、栈内存分配额度,适配NTVDM的内存限制。

  • 切换到纯DOS环境编译
    64位Windows原生无NTVDM,模拟环境内存限制苛刻。可以用DOSBox搭建纯DOS环境,将VC1.52完整目录复制到DOSBox挂载的路径下,在纯DOS中执行编译命令:

    CL.EXE /AT /G2 /Gs /c /Zl BootMain.cpp
    

    纯DOS环境对16位程序的内存管理更原生,能规避系统模拟带来的内存问题。

  • 精简编译选项
    移除不必要的编译参数,比如/Gx(启用异常处理)——引导加载程序通常不需要异常处理逻辑,精简后的编译命令:

    .\VC152\CL.EXE /AT /G2 /Gs /c /Zl BootMain.cpp
    

    减少编译器的资源占用量。

  • 检查目录权限
    确保VC152安装目录和编译输出目录拥有读写权限,部分场景下权限不足会被错误识别为内存不足。

内容的提问来源于stack exchange,提问作者winapiadmin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:07:10