C++11 visual studio 2015中出现错误D8040的原因是什么?

C++11 visual studio 2015中出现错误D8040的原因是什么?,c++11,visual-c++,compiler-errors,visual-studio-2015,C++11,Visual C++,Compiler Errors,Visual Studio 2015,当我使用visual studio 2013构建项目时,它运行正常。但在使用visual studio 2015构建之后,我遇到了以下错误。我怎样才能解决这个问题 致命错误C1001:编译器中发生内部错误。 命令行错误D8040:创建子进程或与子进程通信时出错 C1001是一个“ICE”,是一个内部编译器错误。这意味着您的代码在编译器中生成了一个致命的错误。您使用的是VS 2015、VS 2015更新1还是VS 2015更新2 查找已安装的编译器版本的一种方法是运行VS 2015的开发者命令提示

当我使用visual studio 2013构建项目时,它运行正常。但在使用visual studio 2015构建之后,我遇到了以下错误。我怎样才能解决这个问题

致命错误C1001:编译器中发生内部错误。 命令行错误D8040:创建子进程或与子进程通信时出错

C1001是一个“ICE”,是一个内部编译器错误。这意味着您的代码在编译器中生成了一个致命的错误。您使用的是VS 2015、VS 2015更新1还是VS 2015更新2

查找已安装的编译器版本的一种方法是运行VS 2015的开发者命令提示符,然后运行以下命令:
cl-Bv
,并注意报告的版本。VS 2015更新2为19.00.23918.0

“冰”永远是虫子。如果代码出错,编译器应该发出错误或警告,而不是崩溃。也有可能您的代码很好,而且自VS 2013以来,编译器中引入了一个新的bug。已经对编译器进行了一次修改,以完全支持C++11以及即将发布的C++14/C++17草案

你应该在上提交一个bug。有关创建良好复制的说明,请参阅。这也是一篇关于如何缩小编译器问题范围的精彩文章


在大多数情况下,仅用几行代码就很难重新编程ICE,而且只能在非常特定的上下文中触发。这就是为什么上面的说明都是关于提供捕获问题本质的最小复制的原因。你也可以试试编译器,看看问题是否已经解决。

非常感谢沃尔伯恩。你的解决方案非常有效。我通过visual studio 2015中的以下设置解决了此问题:

1- Disable c/c++->general->Multi-processor compilation
2- Disable c/c++->general->optimization
3- Disable c/c++->language->open mp support
“内部错误”意味着这是一个编译器错误。更改项目设置,使其以串行方式生成文件,一次生成一个文件,并显示日志详细信息。一旦确定要崩溃的文件,请使用对分方法(注释掉一半文件,编译,错误是否仍然发生?)隔离崩溃发生的位置。