Soy gettings este tipo de errores en un proyecto MFC VS6 durante el enlazado de la aplicación:cómo evitar el "error ya definidas" en C++
msvcrt.lib(MSVCRT.dll) : error LNK2005: _atoi already defined in LIBC.lib(atox.obj)
Yo sé lo que significa (existe una función en 2 bibliotecas diferentes); para resolverlo debería excluir una de las 2 bibliotecas (msvcrt.lib
o libc.lib
).
Pero si hago esto, hay todo tipo de errores externos sin resolver. Entonces me gustaría seguir usando ambas bibliotecas.
¿Hay alguna manera de decirle al vinculador que quiero usar la función _atoi
en libc.lib
y no en msvcrt.lib
(o al revés)?
Cualquier ayuda o dirección sería genial.
Acabo de tener un problema similar, ya que no estoy muy familiarizado con el mundo no administrado, fue una sorpresa para mí que necesite diferentes versiones de una biblioteca de terceros dependiendo de las bibliotecas de tiempo de ejecución de su código y esa biblioteca utilizar. Descargué una lib de terceros y traté de vincularla con un proyecto en VC++ 2005. Resultó la biblioteca usada y la versión anterior de la biblioteca de tiempo de ejecución (a?) - LIBCP.LIB. Afortunadamente, la biblioteca de terceros tenía su fuente disponible, así que pude completarla con la biblioteca de tiempo de ejecución de VC2005. Me pregunto cómo resolvería esto sin la fuente. – axk