【发布时间】:2016-10-28 05:24:45
【问题描述】:
我目前正在 FreeBSD 下开发一款游戏。我使用clang 作为 32 位二进制文件编译它并在 64 位系统下运行它(我在这个系统下有 32GB 的 RAM),但我需要使用超过 4GB 的 RAM,因为它只使用 4GB。
即使我运行多个游戏实例,它也无法访问超过 4GB 的 RAM。
另外,我尝试在 64 位系统下编译它,但它有一个奇怪的行为。我遇到了很多错误。
我知道 Windows 上的 Visual Studio 有一个选项 /LARGEADDRESSAWARE,或者类似的东西可以让 32 位应用程序能够使用更多 RAM,还是我错了?
是否有任何我可以指定的标志(如 Windows 标志)以使我的二进制文件能够使用更多 RAM?我读过一些关于mcmodel=large(或medium)的文章,但我不确定这就是我要找的。
交叉编译怎么样?有谁知道我在哪里可以找到一些关于它的好信息?
谢谢。
【问题讨论】:
-
"另外,我尝试在 64 位系统下编译它,但它有一个奇怪的行为。我遇到了很多错误。" -- 然后你会想要修复这些错误。如果您有自己无法解决的具体问题,那可能是一个很好的问题。这也适用于 Windows:
/LARGEADDRESSAWARE也不会让您的应用程序地址超过 4GB。 -
查看内存映射文件。