【问题标题】:Failed to set dynamic section sizes: Memory exhausted无法设置动态部分大小:内存耗尽
【发布时间】:2020-07-27 17:52:37
【问题描述】:

我有一个很大的项目(并且已经在 Windows 上运行),我正在尝试在 Delphi RIO 10.3.3 中编译为 Android 32/64 位

当构建到 RELEASE 配置时,它确实编译成功。

但是,此项目在启动时崩溃。它曾经在东京工作,但我从未真正尝试过为我的客户送货。

现在我要部署,需要调试一下。

每次构建以进行调试时,我都会收到“无法设置动态部分大小:内存已用尽”。有 32 位或 64 位选项。

我尝试逐渐减少DEBUG选项并重新编译,总是得到同样的错误。

我还有什么其他选择?我在其他一些关于使用 GOLD 作为链接器的答案中读到,它是 DELPHI 的一个选项吗?

【问题讨论】:

    标签: android delphi delphi-10.3-rio


    【解决方案1】:

    我猜你可能对这个目标有一些太大的静态变量数组(一个全局数组)。

    类似

    {$ifdef DEBUG}
    var maybetoobig: array[0..1 shl 30] of byte;
    {$endif}
    

    这将保留 1GB 的静态内存,这在 Windows 上可能很好,但在移动目标上不允许。

    尝试通过新建项目并逐个添加单元来规避错误代码。

    • 然后检查全局变量;
    • 或检查单元中的内容可能涉及过多信息。

    您也可以尝试使用外部调试符号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 2011-09-12
      • 1970-01-01
      • 2014-05-14
      • 2016-10-27
      • 2019-05-16
      相关资源
      最近更新 更多