提问人:vam 提问时间:11/14/2023 更新时间:11/15/2023 访问量:27
将 /Zm 标志传递给 msbuild
Passing /Zm flag to msbuild
问:
我面临间歇性问题:- 。为什么我们会遇到这样的问题?
根据文档:- 这里 & 这里 ,通过使用我们可以 控制内存分配。C1060: compiler is out of heap space
\Zm<factor>
作为我们构建的一部分,我注意到我们没有传递传递的编译器标志。我不能在构建命令中传递该标志。那么如果我们不通过它,默认的内存消耗会怎样呢?如果我们想使用,我们应该在链接阶段或编译阶段传递它吗?是否必须传递因子值,或者我们可以根据上面后一个论坛中的文档信息默认使用 100MB 传递?\Zm
\Zm
\Zm
\Zm<factor>
\Zm
答:
0赞
Bowman Zhu-MSFT
11/15/2023
#1
那么如果我们不传递它,默认的内存消耗会发生什么 ?
答案是它将是 75MB。
证据:
如果只在不使用因子的情况下使用,则默认为 ,这意味着它使用默认分配,相当于默认缓冲区大小的 100%,即 75 MB。因此,单独使用不会将内存限制增加到默认值之外。若要增加限制,需要指定大于 100 的系数,例如默认分配的两倍。\Zm
\Zm100
\Zm
\Zm200
如果我们想使用 \Zm,我们应该在链接阶段传递它或 编译阶段?
它应该在编译阶段使用,而不是在链接阶段使用,因为它旨在管理预编译头文件和编译源文件的内存分配。
是必须传递因子值 \Zm 还是我们可以传递 \Zm 默认使用 100mb,根据后者中的文档信息 上面的论坛?
我认为答案是否定的。因为添加或不添加都可能导致 C1060 问题。你可以看看这个:
评论
0赞
vam
11/17/2023
因此,只是在没有任何因素的情况下通过并且根本不通过会充当相同的行为吗?就我而言,我是否需要将因子增加到 200 才能解决?/Zm
评论
\Zm
140
\Zm140