构建文件大小适中而挂起

时间:2020-06-25 18:36:50

标签: c++ visual-studio visual-studio-2019

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

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

如果我用一个较小的向量(例如大小为100)替换该向量,则我的程序会在几分钟内建立好。但是,即使拥有一百万点,该程序即使放置几个小时也不会生成。

我的问题是,如何获得使用5MB文件构建的程序。 MS Visual Studio是否对文件大小或堆大小设置了任何限制?在Linux上,我可以在5分钟左右的时间内完成该程序。但是Visual Studio运气不好。

在某些地方建议使用此环境变量。

CL = /Zm50

我尝试了各种数字,但是没有任何区别。

Visual Studio没有提供任何详细信息-构建只是停留在大文件上而无法完成。我希望有一些使用Visual Studio的经验的人可以对可能的构建选项提供一些见解。

1 个答案:

答案 0 :(得分:1)

由于您已在注释中指出您正在将std::vector<float>与初始化程序一起使用,因此可以将其替换为静态数组:

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

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

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