Visual Studio C++ 编译器标志:-Zm200 是啥?

Posted

技术标签:

【中文标题】Visual Studio C++ 编译器标志:-Zm200 是啥?【英文标题】:Visual Studio C++ compiler flag: what is -Zm200?Visual Studio C++ 编译器标志:-Zm200 是什么? 【发布时间】:2010-02-12 00:31:22 【问题描述】:

我使用 Qt 进行 C++ 开发,今天我从一个 .pro 文件生成了一个 .vcproj 文件。

我注意到在 vcproj 项目属性下,Qt 将此标志添加到 C/C++ -> 命令行 -> 附加选项中

-Zm200 

什么是-Zm200?

【问题讨论】:

【参考方案1】:

-Zm 是指定预编译头内存限制(更多信息here)。它限制了编译器可以分配用于处理预编译头的内存量。对于 Visual C++ 2008,-Zm200 表示限制为 150 MB。

【讨论】:

这很奇怪。如果您查看 Eric 指出的文章,那篇文章说 210MB! Eric 的文章参考了 VC++ 6.0。我的链接指向 VC++ 2008。2005 有不同的数字,2010 可能仍然不同。 嘿,它的 msdn 没有人期望它们准确或有用 ^^ 根据 VC6 (msdn.microsoft.com/en-us/library/aa278580%28VS.60%29.aspx) 的文档,该数字是一个比例因子。它还提到默认限制约为 105MB。所以 200 表示 200%(因此 2x105 = 210)。如果上面 Michael 是正确的,VS2008 中的默认值必须是 75 MB。【参考方案2】:

这限制了编译器的最大堆大小according to this article。所以这根本不会影响你的程序

【讨论】:

以上是关于Visual Studio C++ 编译器标志:-Zm200 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio中的c ++编译器标志

Visual Studio 编译器标志 /arch 和性能

“首选 32 位”编译器标志对 Visual Studio(C#、VB)意味着啥?

“首选 32 位”编译器标志对 Visual Studio(C#、VB)意味着啥?

Visual Studio 2019 LLVM clang 标志

这些 G++ 标志的 Visual Studio 等效项?