• Martes 14 de Mayo de 2024, 23:37

Autor Tema:  Error en el "linking": error LNK2005  (Leído 3572 veces)

SlackDeb

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Error en el "linking": error LNK2005
« en: Martes 22 de Julio de 2008, 03:48 »
0
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

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error en el "linking": error LNK2005
« Respuesta #1 en: Martes 22 de Julio de 2008, 08:20 »
0
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?

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

SlackDeb

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Error en el "linking": error LNK2005
« Respuesta #2 en: Martes 22 de Julio de 2008, 18:01 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Error enlazando o vinculando: error LNK2019
« Respuesta #3 en: Miércoles 23 de Julio de 2008, 05:04 »
0
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

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error en el "linking": error LNK2005
« Respuesta #4 en: Miércoles 23 de Julio de 2008, 07:58 »
0
No hace falta otro hilo.

Comproba las diferencias entre el archivo de configuracion de proyecto en modo Debug y en Release.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

SlackDeb

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Error en el "linking": error LNK2005
« Respuesta #5 en: Miércoles 23 de Julio de 2008, 17:40 »
0
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.

Propiedades de configuracion->C/C++->Linea de comandos (Release):
/O2 /I "..jrtplib-3.7.1src" /I "..jthread-1.2.1src" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "RTP_SUPPORT_THREAD"
/D "_MBCS" /FD /EHsc /MD /GS /Fo"Release/" /Fd"Release/vc70.pdb" /W3 /nologo /c /Zi /TP

Propiedades de configuracion->C/C++->Linea de comandos (Debug):

/Od /I "..jrtplib-3.7.1src" /I "..jthread-1.2.1src" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "RTP_SUPPORT_THREAD"
/D "_MBCS" /Gm /EHsc /RTC1 /MDd /Fo"Debug/" /Fd"Debug/vc70.pdb" /W3 /nologo /c /ZI /TP

Propiedades de configuracion->Vinculador->Linea de comandos (Release):
/OUT:"Release/ConsoleClient.exe" /INCREMENTAL:NO /NOLOGO /DEBUG /PDB:"Release/ConsoleClient.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /MACHINE:X86 Ws2_32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "JRTPConsole  Netjrtplib-3.7.1Releasejrtplib.lib" "JRTPConsole  Netjthread-1.2.1Releasejthread.lib"

Propiedades de configuracion->Vinculador->Linea de comandos (Debug):
/OUT:"Debug/ConsoleClient.exe" /INCREMENTAL /NOLOGO /DEBUG /PDB:"Debug/ConsoleClient.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 Ws2_32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "JRTPConsole  Netjrtplib-3.7.1Releasejrtplib.lib" "JRTPConsole  Netjthread-1.2.1Releasejthread.lib"

 :unsure:

Wesker1262

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Error en el "linking": error LNK2005
« Respuesta #6 en: Jueves 24 de Julio de 2008, 22:08 »
0
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
  1. SetCurrentDirectory ( “media” );
  2. dbLoadObject ( “universe.dbo ”, 1 );
  3. dbSetObjectLight ( 1, 0 );
  4.  

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