Programación General > Visual C++
Error en el "linking": error LNK2005
SlackDeb:
Saludos:
Tengo el siguiente error en la contruccion (builiding) de un programa desarrollado en Visual C++ 6.0. La verdad es que miro los errores que entrega el compilador y me cuesta entender. Se que es un error en el linking(encadenamiento) pero nose como interpretarlo o solucionarlo. En internet he encontrado algunas cosas parecidas a mi error, pero no logro entender el fondo del asunto.
Aqui la parte donde comeinzan los errores:
--------------------Configuration: JRTConsole - Win32 Debug--------------------
Linking...
msvcprtd.lib(MSVCP60D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_strin
g@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in main.obj
msvcprtd.lib(MSVCP60D.dll) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@Q
BEPBDXZ) already defined in main.obj
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __snprintf already defined in LIBCD.lib(snprintf.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _strncpy already defined in LIBCD.lib(strncpy.obj)
LINK : warning LNK4098: defaultlib "MSVCRTD" conflicts with use of other libs; use /NODEFAULTLIB:library
main.obj : error LNK2001: unresolved external symbol __imp__ntohl@4
....
.....
....
Debug/JRTConsole.exe : fatal error LNK1120: 26 unresolved externals
Error executing link.exe.
JRTConsole.exe - 42 error(s), 1 warning(s)
Alguien sabe por donde puede estar el error?
Eternal Idol:
Parece que estas tratando de usar 2 Run Time Library diferentes (LIBC y MSVCRTD). ¿Que cambios hiciste en la configuracion del proyecto y para que?
SlackDeb:
Bien, he tomado la sugerencia anterior y del compilador, al configurar: "use /NODEFAULTLIB:library".
Ahora el problema es el siguiente:
--------------------Configuration: JRTConsole - Win32 Debug--------------------
Linking...
LINK : warning LNK4049: locally defined symbol ""public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_s
tring@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)" imported
LINK : warning LNK4049: locally defined symbol ""public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@st
d@@QBEPBDXZ)" imported
main.obj : error LNK2001: unresolved external symbol __filbuf
main.obj : error LNK2001: unresolved external symbol __iob
main.obj : error LNK2001: unresolved external symbol _printf
"RTPAppSession.obj : error LNK2001: unresolved external symbol _printf
jrtplib.lib(rtpsourcedata.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler
jrtplib.lib(rtcpsdesinfo.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler
jrtplib.lib(rtppacket.obj) : error LNK2001: unresolved external symbol ___CxxFrameHandler
....................
....................
....................
............
Debug/JRTConsole.exe : fatal error LNK1120: 75 unresolved externals
Error executing link.exe.
Cual sera ahora el problema?. Por ejemplo en el objeto rtsourcedata.obj existe un simbolo "sin resolver" ___CxxFrameHandler que se repite una gran cantidad de veces. :huh:
Mas detalles de este proyecto:
Este codigo fue hecho inicialmente para Visual C++ version 7.10, pero lo que Yo necesito es trabajarlo en una version anterior.
Mas detalles en:"//64.233.169.104/search?q=cache:tQMOeV8Y5PYJ:140.113.13.90/material/multimedia%2520com/homework/homework-2.doc+%22homework-2.doc%22+jrtplib&hl=es&ct=clnk&cd=3&gl=cl"
SlackDeb:
Saludos nuevamante:
Decidi abrir un nuevo hilo porque cambia la version de Visual C++ 6.0 a Visual C++ 7.10. Asi que ahora he seguido desarrollando el proyecto
y ala hora de compilar en modo "Debug" aparecen los siguientes errores:
Vinculando...
jrtplib.lib(rtperrors.obj) : error LNK2019: símbolo externo "class std::basic_string,class std::allocator > __cdecl std::operator+(class std::basic_string,class std::allocator > const &,class std::basic_string,class std::allocator > const &)" (??Hstd@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@ABV10@0@Z) sin resolver al que se hace referencia en la función "class std::basic_string,class std::allocator > __cdecl RTPGetErrorString(int)" (?RTPGetErrorString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: símbolo externo "__declspec(dllimport) bool __cdecl std::operator==(class std::basic_string,class std::allocator > const &,class std::basic_string,class std::allocator > const &)" (__imp_??8std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z) sin resolver al que se hace referencia en la función "public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *)" (?GetLocalHostName@RTPUDPv4Transmitter@@UAEHPAEPAI@Z)
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: símbolo externo "__declspec(dllimport) bool __cdecl std::operator<(class std::basic_string,class std::allocator > const &,class std::basic_string,class std::allocator > const &)" (__imp_??Mstd@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z) sin resolver al que se hace referencia en la función "public: void __thiscall std::list,class std::allocator >,class std::allocator,class std::allocator > > >::merge(class std::list,class std::allocator >,class std::allocator,class std::allocator > > > &)" (?merge@?$list@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@QAEXAAV12@@Z)
jrtplib.lib(rtppollthread.obj) : error LNK2019: símbolo externo "__declspec(dllimport) class std::basic_ostream > & __cdecl std::operator<<(class std::basic_ostream > &,char const *)" (__imp_??6std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z) sin resolver al que se hace referencia en la función "public: void __thiscall RTPPollThread::Stop(void)" (?Stop@RTPPollThread@@QAEXXZ)
Debug/ConsoleClient.exe : fatal error LNK1120: 4 externos sin resolver
Resultados El registro de generación se guardó en el "file://c:JRTPConsole NetConsoleClientDebugBuildLog.htm"
ConsoleClient - 5 error(es), 0 advertencia(s)
Lo extraño de este error es que cuando cambioa a modo Release los errores desaparecen y el ejecutable se genera sin problemas!!
¿Alguien me puede guiar por donde puede estar el problema? :no:
Eternal Idol:
No hace falta otro hilo.
Comproba las diferencias entre el archivo de configuracion de proyecto en modo Debug y en Release.
Navegación
[#] Página Siguiente
Ir a la versión completa