我不时(并非每次都)收到此错误消息,我在混合模式项目中进行了编译(编辑:对不起,我在这里并没有明确指出:我的意思是“重建”)。而且Visual Studio告诉我“使用'-Zm114'或更高版本的命令行选项重新编译”。原则上没问题,我只是按照VS告诉我的那样做。

但是目前,这有两个问题:

  • 为什么每次重新构建时都不会发生?如果我理解正确,则编译器在编译项目时会耗尽内存。因此,如果我进行重建以清理所有先前的工作,如果我什么都没做,它下次是否也不会耗尽内存?
  • 为了安全起见,我已经在该项目的所有配置中为Zm指定了120的值(即Zm120)。为什么我收到一个错误消息,该值较低?还是114的建议值只是对VS的疯狂猜测?

    最佳答案

    我知道这很老,但我到这里来了,所以我还是会回答。

    关于PCH问题here有一篇很棒的文章。

    1)为什么每次重新构建时都不会发生?
    当然,要回答这个问题有点复杂。由于并非每次都发生,因此可能是几个问题。这很可能是由于内存分配。从文章:



    这也可能是Pagefile大小问题(很可能在虚拟机上),但是我相信您会收到类似以下消息:



    2)为什么我收到此较低值的错误消息? (用Zm114代替Zm120)
    确保Zm120修改能够处理所有构建配置(Release | Debug)和平台(x86 | x64)。

    将PreferredToolArchtecture设置为x64也可能有帮助:



    这个问题很容易被忽略,但是当预编译的头文件太大时,也会发生这种问题。进行一些清理也可能是一个好主意。

    07-28 01:26