构建挂起,即使是适度的文件大小



我有一个C++程序,它有一个存储在头文件中的大向量。

该矢量的大小约为 100 万个浮点数。(约5MB文件大小(。我无法在Visual Studio中构建此程序。构建文件由 cmake 生成。

如果我用一个较小的向量(例如大小为 100(替换此向量,我的程序在几分钟内就可以很好地构建。但即使有五十万积分,即使放置几个小时,该程序也不会建立。

我的问题,如何让程序使用我的 5MB 文件构建。MS Visual studio是否对文件大小或堆大小进行了任何限制?在 Linux 上,我可以在大约 5 分钟内制作程序。但是Visual Studio没有运气。

一些建议使用此环境变量的地方。

CL = /Zm50

我用各种数字尝试过这个,但没有一个有任何区别。

Visual Studio没有提供任何细节 - 构建只是卡在大文件上并且无法完成。我希望一些有Visual studio经验的人可以对可能的构建选项提供一些见解。

由于您已在注释中指示将std::vector<float>与初始值设定项一起使用,因此可以将其替换为静态数组:

static const float data[] = {...};
std::vector<float> bigvec {std::begin(data), std::end(data)};

您在.cpp文件中声明一次。

静态数组可以在编译时完全构造,并且不需要任何代码生成。在源文件(而不是可以多次包含的标头(中定义它将避免链接器处理大量重复的代码和/或数据(以及可能违反一个定义规则(。

最新更新