我正在尝试编译一个简单的 C++ 文件,它可以:
static const unsigned char content[] =
{
// 29MB of data written as "0x1E, 0x83, 0x3E, 0x86, 0xC8, 0x80, ...". 10 values per line
};
要编译的文件有近 3M 行,大约 200Mo
这是资源管理系统的输出,尝试在我的二进制文件中嵌入一个 29Mo 资源文件(假设它是一个视频文件)以供稍后在运行时使用。
当我编译时,VS2015 报告:
致命错误 C1060:编译器堆空间不足
有没有其他选择(使用 static const unsigned char 之外的东西)?使文件的行数减少但每行字符数增加? ...
注意:我尝试了 /Zm1000 选项,但没有成功。
五年后,当我使用 Visual Studio 2017 使用 CMake 构建 Windows 32 位目标时,我遇到了同样的问题,试图以相同的方式将大型资源(在我的例子中为 24MB)嵌入到 CPP 文件中。指定
cmake -G "Visual Studio 15 2017"
时的默认工具集实际上是 x86 主机二进制文件,它确实会失败并出现错误 C1060。然而,使用 cmake -G "Visual Studio 15 2017" -T "host=x64"
,它使用 x64 主机二进制文件来构建(仍然适用于 32 位 x86 目标)并成功完成。