gpt4 book ai didi

c++ - 允许 32 位应用程序在 FreeBSD 下使用超过 4GB 的内存

转载 作者:行者123 更新时间:2023-11-30 01:43:19 28 4
gpt4 key购买 nike

我目前正在 FreeBSD 下开发一款游戏。我正在使用 clang 编译它作为 32 位二进制文​​件并在 64 位系统下运行它(我在这个系统下有 32GB 的 RAM),但我需要它使用超过 4GB 的 RAM,因为它仅使用 4GB。
即使我运行游戏的多个实例,它也无法访问超过 4GB 的 RAM。

此外,我尝试在 64 位系统下编译它,但它有一个奇怪的行为。我遇到了很多错误。

我知道 Windows 上的 Visual Studio 有一个选项 /LARGEADDRESSAWARE,或者类似的东西可以让 32 位应用程序能够使用更多的 RAM,或者我错了?
是否有任何我可以指定的标志(如 Windows 标志)以使我的二进制文件能够使用更多 RAM?我读过一些关于 mcmodel=large(或 medium)的内容,但我不确定这是否是我要找的。
交叉编译呢?有谁知道我在哪里可以找到一些关于它的有用信息?
谢谢。

最佳答案

您只能使用 32 位整数寻址 4GiB。 2^32 = 4294967296 = 4 * 1024 * 1024 * 1024

在 32 位可执行文件中没有办法拥有超过 4GiB 的地址空间。这是一个数学限制。不可否认,您可以使用交换和物理地址扩展来处理进程中超过 4GiB 的数据,但在任何给定时间您都不能处理超过 4GiB 的数据。

关于c++ - 允许 32 位应用程序在 FreeBSD 下使用超过 4GB 的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032917/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com