visual-studio-2015 - instalar - plugins visual studio code
Error interno del compilador con C++ en Visual Studio 2015 Update 1 (4)
Actualicé a Visual Studio 2015 Actualización 1, pero ahora recibo el siguiente error cada vez que compilo una configuración de lanzamiento para 64 bits, todo funciona para las versiones de 32 bits y / o depuración.
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
El error ocurre no para todos mis proyectos, sino para algunos.
Simplificar la ubicación especificada no es realmente posible, la ubicación donde el compilador se cuelga es generalmente una función muy simple de una línea, también cambiar este código conduce al mismo error en una ubicación diferente. Por lo que puedo adivinar, tiene que hacer algo con la optimización y la alineación. Pero cambiar las opciones de optimización tampoco ayudó.
¿Alguien puede indicarme una dirección sobre cómo localizar el código problemático real o algunas opciones del compilador para evitar este error?
Me gustaría no creer que la actualización esté rota.
Intente configurar en la optimización del proyecto a Deshabilitado (/ Od), puede resolver el problema.
Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio
- Abra el cuadro de diálogo Páginas de propiedades del proyecto.
- Haga clic en la carpeta C / C ++.
- Haga clic en la página de propiedades de optimización.
- Modificar la propiedad de optimización.
Fuente: https://msdn.microsoft.com/en-us/library/aafb762y.aspx
Espero que mi respuesta sea compatible con tu problema.
Repro compilando una lib JSON en la versión | x64. Config se configuró para maximizar la velocidad (/ O2), pero General usaba "Sin optimización de todo el programa". Cambiando de "Sin optimización de todo el programa" a Usar generación de código de tiempo de enlace (creo que la bandera es / LTCG) se construye con éxito.
Nos encontramos con C1001 en uno de nuestros proyectos después de actualizar a MSVC 2015 actualización 1.
A través de prueba y error, identificamos la propiedad ClCompile/AssemblerOutput
como el culpable en nuestro caso. Eliminar esta propiedad ya no causa C1001
Fuente: https://trac.osgeo.org/mapguide/ticket/2580
Actualización 6 de abril de 2016: Intenté construir este mismo proyecto con MSVC 2015 Actualización 2 sin la propiedad ClCompile/AssemblerOutput
eliminada y ya no recibo C1001 al construir este proyecto. Creo que la Actualización 2 lo solucionó.
También encontré este problema mientras estábamos convirtiendo la base de código de nuestra compañía de VC10 a VC14. En nuestro caso, el problema ocurrió cuando se habilitaba x64 y SEH ( /EHa
) al mismo tiempo que se activaba la salida de ensamblador. El error parecía ocurrir en nuestro caso cuando el operador de inserción de flujo (es decir, std::cout::operator<<
) se llamaba en el código compilado.
En nuestro caso, la vinculación dinámica del CRT en lugar de vincularlo estáticamente (es decir, /MT
lugar de /MD
) parece solucionar el problema sin deshabilitar la salida del ensamblador. Este no es el primer problema que he encontrado con el CRT enlazado estáticamente (por ejemplo, también ha causado que falten cursores al cambiar el tamaño de las ventanas de CPane en MFC).
Esto se informó a Microsoft ( https://connect.microsoft.com/VisualStudio/feedback/details/2216490/compiler-crashes-at-string-stream-insertion-operator ), pero dos meses y medio después, parece que ni siquiera lo han mirado ...
Editar: VS2015 Actualización 2 tiene, según Micrsoft, solucionó este problema. Se probó como fijo en nuestra base de código.