gpt4 book ai didi

c++ - 在 amd64 模式下编译 (visual studio 2010)

转载 作者:行者123 更新时间:2023-11-30 03:06:04 25 4
gpt4 key购买 nike

伙计们,我想编译一个原生的 64 位应用程序。我确实以正确的方式配置了 VS,它可以工作,但很明显它是交叉编译,而不是在原生 amd64 模式下编译,因为如果我尝试分配一个超过 1 000 000 000 的 vector ,我的程序仍然会卡住。

现在,我的问题是我必须在哪里放置额外的“amd64”(如此处所述 http://msdn.microsoft.com/en-us/library/x4d2c09s%28VS.80%29.aspx )。我在属性页 > 调试 > 命令参数下尝试过,但没有帮助。

哦,别对我太苛刻,我对这个话题有点陌生。

提前致谢。

(Windows 7 专业版上的 Visual Studio 2010 终极版。)

编辑:给博

我不知道,因为我在 Release模式下运行它,我确实收到“...exe 已停止工作”消息。此外,我添加了带有后推功能的元素,它适用于 1 000 000 000 个元素,但不适用于 1 100 000 000 个元素。

编辑2:

感谢您的提示。我实际上使用的是 2010 版的页面,我只是发布了错误的链接。我也确实按照这些网站上的说明进行操作,正如我所写的那样,它一直有效,直到我使用超过 4 GB 的 RAM。我试图运行一个使用超过 2 GB 内存的 32 位应用程序,当然没有用。然后我按照页面上的说明进行操作 -> 我能够以 4 GB 的使用量运行该应用程序。现在,我想分配超过 4gb -> 它没有用。为什么我认为它必须与编译有关,因为你可以设置一个特定的标志,使 32 位应用程序能够使用 4gb,我认为这就是交叉编译选项的作用。 -> 使其“以某种方式”兼容 32 位和 64 位。

EDIT3:我在 win7 64x 上安装了 8gb

EDIT4:抱歉,我没有对单个帖子发表评论,但如果我点击“评论”,什么也没有发生。但我刚刚发现了一些东西。编译器的问题可能不是问题,因为我可以成功分配 2 个 vec,其中一个大小为 500 000 000,另一个大小为 700 000 000。有其他人知道为什么我不能分配大于 4gb 的 vector 吗?

最佳答案

它可能不是卡住,而是填满了你的交换文件。

如果你在 Debug模式下运行,运行时会用一个特殊的值填充数组(标记未初始化的变量)。这可能需要一段时间!


我在 Release模式下运行这个程序没有问题

#include <vector>
#include <iostream>

int main()
{
std::vector<int> v(2000000000);

std::cout << v.size();

return 0;
}

在几秒钟内运行(具有大量交换文件事件)并打印预期大小。

关于c++ - 在 amd64 模式下编译 (visual studio 2010),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7043066/

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