【问题标题】:Running 32bit Borland XE2 app under Win 7 64bit with /3gb switch (-GF LARGEADDRESSAWARE )?在 Win 7 64bit 下使用 /3gb 开关 (-GF LARGEADDRESSAWARE ) 运行 32bit Borland XE2 应用程序?
【发布时间】:2016-05-06 01:49:41
【问题描述】:

正如标题所述,我在 win 7 64 位下运行 32 位应用程序。该应用程序是在 Embarcadero XE2 中用 C++ 编写的。我需要 2GB 以上的内存。

步骤: - 我启用了 3GB 开关并重新启动了电脑。 - 我尝试将 -GF: LARGEADDRESSAWARE 添加到项目选项/c++ 链接器/输出标志,但随后链接失败。它说:“失败的命令GF:”或类似的东西。 然后我在论坛上发现您应该在 FLAGS 部分下的 .bpr 文件中手动执行此操作。我添加了标志,然后链接了项目。但是,我在应用程序中的可用内存指示器告诉我我仍然低于 2 GB。

问题: 1.如何正确完成这项工作? 2. 如何判断我有没有3gb的内存?

提前谢谢你

【问题讨论】:

  • 如果您无法让 Embarcadero 链接器添加标志,您始终可以使用 SDK 中的 editbin 自定义构建步骤来添加标志。
  • 请注意,您可能无法获得 2GB 的连续内存!

标签: c++ windows memory delphi-xe2 c++builder-xe2


【解决方案1】:

/3GB 开关仅适用于 32 位系统。您的系统是 64 位系统。这意味着带有LARGEADDRESSAWARE PE 标志的 32 位可执行文件将具有 4GB 的地址空间。不要尝试使用/3GB 引导选项。

您可以使用任何 PE 查看工具检查您的可执行文件是否设置了LARGEADDRESSAWARE PE 标志。使用 MS 工具链,您将使用 dumpbin。 Embarcadero 工具链等价物是tdump。此外,还有无数的 GUI PE 查看器。找到一个可以工作的工具,并确保你已经正确设置了这个 PE 标志。

【讨论】:

  • 好的。我知道了。让我看看我能做什么,我会回复你的。谢谢!
  • 我无法让它工作。我在 C++ 链接器/输出/标志下的 BUilder XE2 中添加了标志 /largeaddressaware
  • “无法正常工作”是什么意思。这里的文档 (docwiki.embarcadero.com/RADStudio/XE2/en/…) 告诉你该怎么做。你是如何诊断故障的。请记住,我们看不到您的屏幕,并且诸如“无法正常工作”之类的 cmets 没有任何实际意义。
  • 对此感到抱歉。我确实编辑了我的评论,但它没有得到保存。我收到错误 [ILINK32 错误] 致命:非法选项:GF:
  • 文档有些混乱。他们建议-GF LARGEADDRESSAWARE 而不是-GF:LARGEADDRESSAWARE
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多