Siento molestar a nadie con esta pregunta, pero he estado investigando esto durante horas, sin embargo resolución:LNK2022 y LNK2034 errores de enlace con la versión 10.0 del CRT
Estoy portar una aplicación bastante masivo para el 10.0 CRT (compilador) en Visual Studio 2010. La aplicación se administra C++/CLI que usa/clr. La mayoría del código es nativo (95%), con algunas porciones administradas aquí y allá.
Así que mi trabajo consiste en hacer el cambio en el .vcxproj para apuntar al nuevo 10.0 CRT (es decir, el compilador). Anteriormente estábamos usando v90 o usando el compilador de VC que venía con VS 2008 SP1.
Ok, ¿por qué se están produciendo cambios? Parece un montón en realidad. Arreglé algunos problemas de los iteradores relacionados con los conjuntos, y todo fue muy fácil.
Pero estos errores del enlazador me están matando. Cualquier ayuda se agradece:
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (80131195) : Custom attributes are not consistent: (0x0c0001c0).
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2022: metadata operation failed (80131195) : Custom attributes are not consistent: (0x0c0001c5).
...
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2034: metadata inconsistent with COFF symbol table: symbol '[email protected]@[email protected]@[email protected]@@Z' (06000141) has inconsistent metadata with (0A000F75) in identity.obj
1>MSVCMRTD.lib(locale0_implib.obj) : error LNK2034: metadata inconsistent with COFF symbol table: symbol '[email protected]@[email protected]@[email protected]@@Z' (06000141) has inconsistent metadata with (0A000F76) in ICustAttribCollapseManagerImp.obj
... (repeated hundreds of times)
seguí adelante y sin decorar el símbolo:
[email protected]@[email protected]@[email protected]@@Z
y tengo:
public: __thiscall std::allocator<char>::allocator<char>(class std::allocator<char> const &)
Así que, como yo lo entiendo, el archivo msvcmrtd.lib tiene este std :: allocator compilado de una manera, y algo más en la configuración de mi proyecto (#pragma managed ??) se compila de otra manera. Pero si es así, ¿qué busco? Esto ha estado compilando bien durante años usando los viejos compiladores.
Nota: En este momento el marco .NET 3.5 (no estoy seguro si eso ayuda o no ... lo dudo)
Gracias
Esto es una bestia. Incluso ese hilo al que enlazaste en MSDN no tenía mucho que ofrecer. Le daré una oportunidad al preprocesador que me sugirió y volveré a este hilo, para informarle mañana. –
Se intentó configurar ese preprocesador sin éxito.Es una lástima que el desarrollador que escribió todas estas cosas ya no funcione para mi empresa, y me queda el desorden. Gracias por su ayuda. –
Voy a marcar esto como la respuesta, porque en el enlace que proporcionó, el Sr. Lavavej señaló que la clase std :: string ahora es solo encabezado en VC 10.0 y la mayoría, si no todos, de mis errores de enlazador están relacionados con la cadena cuestiones. Aunque todavía no tengo una resolución para esto. –