Pregunta

Así que tengo un proyecto de Visual Studio 2010 que utiliza bibliotecas externas y con el fin de conseguir que compile sin LNK2005 tuve que cerca de malabares con el orden de las bibliotecas en los ajustes de engarce.

Lo tengo a compilarse bien en modo de lanzamiento, pero por las razones que sean no me las arreglo para que se compile sin errores LNK en depuración.

¿No hay manera de ignorar lo general LNK2005 y decirle al enlazador para su uso simplemente todo lo que encuentra en primer lugar?

Gracias!

// Edit: aquí son algunos de los errores de salida del problema particular. Sin embargo Ya he intentado resolver de modo distinto con cada solución darme diferentes problemas de vinculador. por lo tanto, estoy buscando solución general a ignorar LNK2005

Error 7 error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in Libcmtd.lib(typinfo.obj) ...\msvcprtd.lib(MSVCP100D.dll)

Error 8 error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in Libcmtd.lib(typinfo.obj) ...\msvcprtd.lib(MSVCP100D.dll)

Error 9 error LNK2005: _exit already defined in Libcmtd.lib(crt0dat.obj) ...\msvcprtd.lib(MSVCP100D.dll)

Error 10 error LNK2005: __invalid_parameter already defined in Libcmtd.lib(invarg.obj) ...\msvcprtd.lib(MSVCP100D.dll)

...

Error 37 error LNK1169: one or more multiply defined symbols found

¿Fue útil?

Solución

Se puede probar la opción del vinculador / FUERZA (Archivo de salida de la fuerza en la pestaña Enlazador General de las Propiedades del proyecto). Esto forzará el enlazador para crear un exe / dll incluso cuando ocurren tales errores. Pero su izquierda para usted para averiguar si esto exe funciona en absoluto o incluso correctamente. Después de todo, no recomendaría esta estrategia.

Linker errores a veces puede ser tedioso para resolver, pero por lo general tiene que ser hecho sólo después de la migración o la creación de un proyecto. Esto puede tomar un buen tiempo -. A veces me llevó más de un día, pero se debe hacer correctamente

Otros consejos

A pesar de todo, no debe ignorar errores de enlace, cada vez Un enlazador que está diciendo que está confundido acerca de un símbolo que está definido en varios lugares - donde debe tomar la definición de? ¿De verdad quiere que sea arbitraria? ¿Y cuando cambie su código y el enlazador decide al azar para tomar la otra definición que podría romper su código de repente?

En lugar de combatir la herramienta, corregir su código para que se compila y enlaces sin errores. Este MSDN tiene alguna información sobre la fijación de ella, a lo largo de los accesos necesarios más información.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top