【发布时间】:2018-12-21 17:45:50
【问题描述】:
我正在尝试编译一个简单的 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:编译器堆空间不足
是否有任何替代方案(使用静态 const unsigned char 以外的其他东西)?使文件有更少的行但每行有更多的字符? ...
注意:我尝试了 /Zm1000 选项但没有成功。
【问题讨论】:
-
我假设你的意思是MB?为什么必须在源代码中?
-
29Mo 是什么意思?请修正您的帖子。
-
这与X/Y Problem 接壤。
-
您可以尝试将二进制文件作为资源嵌入。从msdn.microsoft.com/en-us/library/windows/desktop/ms632583.aspx开始
-
64 位编译器或许能够解决它。更改 VC++ 目录 > 可执行目录设置以选择 $(VC_ExecutablePath_x64_x86)、x64_x64 或 x64_ARM,具体取决于所需的平台目标。看着那草长得不是很有趣,你几乎肯定会改变那个实用程序来编写一个二进制文件。
标签: c++ visual-studio-2015 heap-memory