因为编译器cl.exe,在编译期间占用内存超过4G导致(可打开任务管理器检查cl.exe的内存占用情况)。
cl.exe默认使用32位,32位程序最大可使用地址空间为2^32=4GB,因此使用内存超过4G时会导致进程崩溃。
直接的解决方法是改用64位的cl.exe,修改方法如下:
1、打开.vcxproj文件,搜索"Globals",可找到 <PropertyGroup Label=“Globals” 这一行;
2、在这个标签的末尾增加一行:x64 如下图所示:
如果按照上面方法处理的话,在32位系统中将无法编译。
因此还是彻底解决问题,就要找到根因:
(1)代码中是否定义了超大全局静态数组?如果有可改为动态申请内存动态加载。
(2)资源文件是否引用了超大的文件?如果有可改为运行期访问文件,不要编译到资源文件。
解决 VC++ fatal error C1060: 编译器的堆空间不足
最新推荐文章于 2024-04-30 18:18:02 发布