2016-05-27 228 views
0

当我通过visual studio 2013构建项目时,它运行正常。但在使用visual studio 2015构建之后,我遇到以下错误。我该如何解决这个问题?visual studio 2015中出现错误D8040的原因是什么?

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

+0

“内部错误”表示它是一个编译器错误。改变你的项目设置,以便它连续编译,一次创建文件,打开日志记录的详细程度,一旦你确定文件崩溃了,使用二分法(注释掉文件的一半,编译,错误是否仍然存在?)隔离发生事故的地方。 – kfsone

回答

0

C1001是“ICE”,一个内部编译器错误。这意味着你的代码在编译器中产生了一个致命的错误。您是否在使用VS 2015,VS 2015 Update 1或VS 2015 Update 2?

一个找到你所安装的编译器的版本的方法是运行开发人员命令提示符下VS 2015年然后运行以下命令:cl -Bv并注意哪些版本的报道。 VS 2015更新2是19.00.23918.0

“ICE”总是一个错误。如果你的代码做错了,编译器应该发出错误或警告,不会崩溃。也可能你的代码很好,自2013年以来,编译器中引入了一个新的bug。编译器已经完成了lot of work以完全支持C++ 11并支持即将推出的C++ 14/C++ 17草案。

您应该在VS Connect上提交错误。请参阅this article了解如何创建良好的再现。这blog post也是如何缩小编译器问题的一个很好的写法。

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

1

非常感谢沃尔伯恩。您的解决方案非常有效。我通过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 
相关问题