Programación General => C/C++ => Visual C++ => Mensaje iniciado por: SlackDeb en Martes 22 de Julio de 2008, 03:48
Título: Error en el "linking": error LNK2005
Publicado por: SlackDeb en Martes 22 de Julio de 2008, 03:48
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?
Título: Re: Error en el "linking": error LNK2005
Publicado por: Eternal Idol en Martes 22 de Julio de 2008, 08:20
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?
Título: Re: Error en el "linking": error LNK2005
Publicado por: SlackDeb en Martes 22 de Julio de 2008, 18:01
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"
Título: Error enlazando o vinculando: error LNK2019
Publicado por: SlackDeb en Miércoles 23 de Julio de 2008, 05:04
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:
Título: Re: Error en el "linking": error LNK2005
Publicado por: Eternal Idol en Miércoles 23 de Julio de 2008, 07:58
No hace falta otro hilo.
Comproba las diferencias entre el archivo de configuracion de proyecto en modo Debug y en Release.
Título: Re: Error en el "linking": error LNK2005
Publicado por: SlackDeb en Miércoles 23 de Julio de 2008, 17:40
He tratado de observar las difrencias, pero segun observo no se ve nada extraño.
Aca muestro la comparacion entre Release y Debug. Quizas alguien que lee este foro puede observar algun parametro que debo corregir.
Título: Re: Error en el "linking": error LNK2005
Publicado por: Wesker1262 en Jueves 24 de Julio de 2008, 22:08
Oye no se si sea de ayuda esto ke te voy a decir me paso algo mucho muy similar pero en visual c++ 2008 ke por cierto en la pagina de microsoft es gratuito y te recopiendo ke le des una bajadita
bien ese error me salio cuando daba mi release vez ke las cosas no siempre salen como keremos xD
entonces me hise bolas como 1 semana metiendole mano chekando codigo y nada
daba el mismo error de link una y otra vez
lo resolvi simplemente en release pegando los archivos faltantes ke usaba mi programa en release no los transcribio por asi decirlo asi ke me vi obligado a moverlos si eso lo soluciona pues felicidades sino pues cheka bien tu codigo fuente dale una vuelta a todo lo ke estas enganchando imagenes etc tambien puede ser un error por algun espasio ejemplo :
Código: Text
SetCurrentDirectory ( “media” );
dbLoadObject ( “universe.dbo ”, 1 );
dbSetObjectLight ( 1, 0 );
dbLoadObject ( “universe.dbo ”, 1 ); ahi hay un espacio y aveces la makina se vuelve loka y en algunos casos nos comemos letras al copiar y pegar checando todo eso deberias poder hacer correr el programa