Error 'ENLACE: error grave LNK1123: error durante la conversión a COFF: archivo no válido o dañado' después de instalar Visual Studio 2012 Release Preview

Resuelto Orion Edwards asked hace 12 años • 25 respuestas

Instalé Visual Studio 2012 Release Preview y parece estar bien, pero ahora, cuando intento usar Visual Studio 2010 para compilar proyectos de C++, aparece el siguiente mensaje de error:

ENLACE: error fatal LNK1123: falla durante la conversión a COFF: archivo no válido o corrupto

No estoy 100% seguro de esto, pero parece estar relacionado con proyectos que contienen .rcarchivos (de recursos).

Intenté reparar Visual Studio 2010 desde Agregar o quitar programas y reiniciar, pero esto no tiene ningún efecto.

También recibo el mismo error si uso Visual Studio 2012 RC para compilar los proyectos de C++ cuando estoy configurado para usar el conjunto de herramientas de Visual Studio 2010. La actualización al conjunto de herramientas de Visual Studio 2011 soluciona el problema (pero, por supuesto, no quiero hacer esto con el código de producción).

Actualización: desinstalé Visual Studio 2012 , reinicié y el problema aún persiste. ¡Ayuda!

Orion Edwards avatar Jun 05 '12 04:06 Orion Edwards
Aceptado

Este hilo de MSDN explica cómo solucionarlo.

Para resumir:

  • Deshabilite el enlace incremental yendo a

    Project Properties 
       -> Configuration Properties 
           -> Linker (General) 
              -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"
    
  • o instale VS2010 SP1.

Ediciones (@CraigRinger): tenga en cuenta que la instalación de VS 2010 SP1 eliminará los compiladores de 64 bits . Debe instalar el paquete del compilador VS 2010 SP1 para recuperarlos.

Esto afecta a Microsoft Windows SDK 7.1 para Windows 7 y .NET 4.0 , así como a Visual Studio 2010 .

Short avatar Jun 05 '2012 01:06 Short

Si deshabilitar el enlace incremental no funciona para usted y desactivar "Incrustar manifiesto" tampoco funciona, busque en su ruta varias versiones de CVTRES.exe.

Al depurar con la opción del vinculador /VERBOSE descubrí que el vinculador estaba escribiendo ese mensaje de error cuando intentó invocar cvtres y falló.

Resultó que tenía dos versiones de esta utilidad en mi camino. Uno a las C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cvtres.exey otro a las C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe. Después de la instalación de VS2012, la versión VS2010 de cvtres.exe ya no funcionará. Si ese es el primero en su ruta y el vinculador decide que necesita convertir un archivo .res al formato de objeto COFF, el vínculo fallará con LNK1123.

(Es realmente molesto que el mensaje de error no tenga nada que ver con el problema real, pero eso no es inusual para un producto de Microsoft).

Simplemente elimine/cambie el nombre de la versión anterior de la utilidad, o reorganice su variable PATH, para que la versión que funcione sea lo primero.

Tenga en cuenta que para las compilaciones de herramientas x64 es posible que también deba verificar C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64dónde hay otro cvtres.exe.

Die in Sente avatar Jan 03 '2013 18:01 Die in Sente