主题:total image size 这个是什么意思
vehicle
[专家分:310] 发布于 2008-05-07 10:41:00
我在计算时发现这个问题:
warning LNK4084: total image size 600170496 exceeds max (268435456); image may not run
这个是不是数组开大了。在不改变数组大小的情况下,怎么办?能否修改程序的内部设置?
谢谢!
回复列表 (共7个回复)
沙发
necrohan [专家分:1440] 发布于 2008-05-13 22:24:00
只要不出现负数,程序运行不受影响
板凳
臭石头雪球 [专家分:23030] 发布于 2008-05-14 07:57:00
这个只是警告而已,告诉你生成的 EXE 镜像文件太大,可能无法运行,事实上,如果你可以运行,则完全不必考虑这个警告。
3 楼
yegudeng [专家分:30] 发布于 2008-10-08 00:25:00
请问石头兄这个问题是因什么引起的,是因为数组开的太大吗?如果是这个原因,是否是一个无法避免的问题,因为计算的确需要那么大的数组。我的也是常常有这个警告,不过不妨碍运行。谢谢了。
warning LNK4084: total image size 722407424 exceeds max (268435456); image may not run
[quote]这个只是警告而已,告诉你生成的 EXE 镜像文件太大,可能无法运行,事实上,如果你可以运行,则完全不必考虑这个警告。[/quote]
4 楼
jason388 [专家分:6150] 发布于 2008-10-08 05:42:00
以下摘自过去的老帖http://bbs.pfan.cn/post-283241.html。供参考
256M image size 限制是windows操作系统造成的:
Windows 95 and NT 4.0 (prior to SP3) have a limit on the virtual address space of processes or applications of 256 MB. Windows XP/2000/NT 4.0 (SP3+)/Me/98 have a limit of 2 GB. For more information, including how to increase the limit to 3 GB, see Memory Support and Windows Operating Systems .
A program can contain a number of allocatable arrays that exceed the limit, as long as the total sizes of those that are allocated at any point during execution do not exceed the limit.
可能的解决问题的方法:
1.把静态内存分配改成动态分配;
2.有时把静态分配的数组加save属性也能解决问题;
3.操作系统升级;
4.增加物理内存数量;
5.修改程序,减少大数组的使用。
5 楼
xq_yan [专家分:0] 发布于 2009-07-23 19:58:00
看了回答,还不是很明白,现在我的不能运行下去该怎么解决呢?
6 楼
臭石头雪球 [专家分:23030] 发布于 2009-07-24 13:26:00
把程序中较大的数组都开辟成 Allocatable 的动态数组。
7 楼
tybprotran90 [专家分:0] 发布于 2011-03-21 10:27:00
我目前也遇到这个问题呢。将数组增大就出现这个内存不够
我来回复