Visual Studio 2015 Update 1 中的 C++ 内部编译器错误

Visual Studio 2015 Update 1 中的 C++ 内部编译器错误

问题描述:

我更新到 Visual Studio 2015 Update 1,但现在我在编译 64 位发布配置时遇到以下错误,一切都适用于 32 位和/或调试版本.

I updated to Visual Studio 2015 Update 1 but now I am getting the following error when ever I compile a release configuration for 64 bit, everything works for 32 bit and/or debug builds.

fatal error C1001: An internal error has occurred in the compiler.
  (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c', line 246)
   To work around this problem, try simplifying or changing the program near the locations listed above.
  Please choose the Technical Support command on the Visual C++
   Help menu, or open the Technical Support help file for more information
    link!InvokeCompilerPass()+0x2d4bd
    link!DllGetC2Telemetry()+0xae663

该错误不是针对我的每个项目而是针对某些项目发生的.

The error occurs not for every of my projects but for some.

简化指定位置是不太可能的,编译器崩溃的位置通常只是一个非常简单的单行函数,更改此代码也会在不同的位置导致相同的错误.据我所知,它必须通过优化和内联来做一些事情.但更改优化选项也无济于事.

Simplifying the specified location is not really possible, the location where compiler is crashing is usually just a very simple one line function, also changing this code leads to the same error at a different location. As far as I can guess it has to do something with optimization and inlining. But changing optimization options didn't help either.

谁能指出我如何定位真正有问题的代码或一些编译器选项以避免此错误的方向?

Can anyone point me to a direction how to locate the real problematic code or some compiler options to avoid this error?

我不想相信更新已损坏.

I would like to not believe that that the update is broken.

我们在升级到 MSVC 2015 更新 1 后在我们的一个项目中遇到了 C1001.

We encountered C1001 in one of our projects after upgrading to MSVC 2015 update 1.

通过反复试验,我们已经确定 ClCompile/AssemblerOutput 属性是我们案例中的罪魁祸首.删除此属性不再导致 C1001

Through trial-and-error, we've identified the ClCompile/AssemblerOutput property as the culprit in our case. Removing this property no longer caused C1001

来源:https://trac.osgeo.org/mapguide/ticket/2580

2016 年 4 月 6 日更新:我尝试使用 MSVC 2015 Update 2 构建同一个项目,但没有删除 ClCompile/AssemblerOutput 属性,并且在构建此项目时我不再获得 C1001.我认为更新 2 修复了它.

Update April 6th 2016: I tried building this same project with MSVC 2015 Update 2 without the ClCompile/AssemblerOutput property removed and I no longer get C1001 when building this project. I think Update 2 fixed it.