【发布时间】:2020-06-25 18:36:50
【问题描述】:
我有一个 C++ 程序,它带有一个存储在头文件中的大向量。
这个向量的大小约为 100 万个浮点数。 (大约 5MB 文件大小)。我无法在 Visual Studio 中构建此程序。构建文件由 cmake 生成。
如果我用一个较小的向量(比如 100)替换这个向量,我的程序在几分钟内就可以构建好。但是即使有 50 万个点,即使放置几个小时,程序也无法构建。
我的问题,我如何让程序用我的 5MB 文件构建。 MS Visual Studio 是否对文件大小或堆大小有任何限制?在 Linux 上,我可以在大约 5 分钟的时间内完成该程序。但是 Visual Studio 没有运气。
有些地方建议使用这个环境变量。
CL = /Zm50
我尝试了各种数字,但没有任何区别。
Visual Studio 没有提供任何细节 - 构建只是卡在大文件上并且无法完成。我希望有 Visual Studio 经验的人可以就可能的构建选项提供一些见解。
【问题讨论】:
-
听起来您正在使用编译器对数组进行编译时计算。也许不这样做?
-
不确定,抱歉!
-
您能否将其更改为使用
static const float data[] = {...}; std::vector<float> bigvec = {std::begin(data), std::end(data)};之类的内容,将该代码放入 .cpp 文件(而不是包含在多个文件中的 .h)中? -
所以向量实际上有一个 5MB(大约)的初始化列表?
-
值得将您正在做的事情的一个简短版本与“这不足以导致问题”警告一起放入问题中。这增加了很多清晰的问题,即使它是不可重现的。
标签: c++ visual-studio visual-studio-2019