5

Mi proyecto está compilando y ejecutándose bien en modos de depuración y liberación en VS 2010. Hoy traté de compilarlo con VS 2012 y obtuve este error:Compilando una aplicación MFC desde Visual Studio 2010 a resultados de RC 2012 en LNK2038

1> Generating Code... 
1>pcrecppd.lib(pcrecpp.obj) : error LNK2038: mismatch detected for '_MSC_VER': 
value '1600' doesn't match value '1700' in NamesEditorDlg.obj 

He buscado "_MSC_VER" en el código pero no he encontrado ninguna coincidencia. Tampoco pude encontrar "1600" o "1700".

Así que me pregunto cómo puedo resolver este problema.

+0

¿Acabas de copiar los archivos a las carpetas de 2012 o has creado un nuevo proyecto e importado? –

+0

He copiado los archivos. – Wartin

+0

_MSC_VER es una macro predefinida, por lo que está integrada y no la encontrará en las fuentes. (Aparentemente su valor es 1600 en VS2010 y 1700 en VS2012). ¿Copió algún archivo binario, algo intrínseco a VS2010, archivos de objetos compilados? ¿Estás seguro de que el compilador más nuevo no está intentando acceder a bibliotecas antiguas? ¿Los nuevos proyectos que crees con compilación VS2012? –

Respuesta

5

Parece que está usando un .lib de vc2010 en vc2012 (supongo que parece una biblioteca PCRE). Necesitará recompilar todos sus .libs o el enlace de tiempo de ejecución con los archivos DLL (es decir, LoadLibrary, GetProcAddress, etc.).

0

NO, todo lo que necesita es comprobar las propiedades del proyecto. Existe un enlace a los archivos del proyecto anterior. Necesita abrir las propiedades del proyecto en la página ".NET Framework y enlaces" all all de all links end add new para los nuevos archivos de proyecto 2012.

3

En Project Properties, seleccione General y luego cambie la configuración "Platform Toolset" a "Visual Studio 2010 (v100)". Después de hacerlo, mi código compilaba bien con las bibliotecas originales.

+0

y, a la inversa, si su problema es 1700 a 1600 (en lugar de 1600 a 1700 como en la pregunta), puede hacer lo contrario. Según http://stackoverflow.com/questions/19575747/error-lnk2038-mismatch-detected-for-msc-ver-value-1600-doesnt-match-valu – metao

Cuestiones relacionadas