Título: Ayuda Erroir error LNK2005 already defined Publicado por: -MicrO- en 23 Julio 2011, 19:36 pm Hola a todos yo por aca de nuevo :xD
Esta vez con un proyecto en "MFC AppWizard (dll)" el profesor no dios el ejercicio y hay que encontrar errores, luego de resolver el primero me tranque en el segundo error. quisiera que le hechen un vistaso: Complejo.cpp Código
StdAfx.cpp Código
Complejo.h Código
StdAfx.h Código
Al Compilar tengo 0 Errores, pero al Ejecutar me da esto: Código: StdAfx.obj : error LNK2005: "public: __thiscall complejo::complejo(void)" (??0complejo@@QAE@XZ) already defined in complejo.obj StdAfx.obj : error LNK2005: "public: __thiscall complejo::complejo(double,double)" (??0complejo@@QAE@NN@Z) already defined in complejo.obj StdAfx.obj : error LNK2005: "public: void __thiscall complejo::SetData(void)" (?SetData@complejo@@QAEXXZ) already defined in complejo.obj StdAfx.obj : error LNK2005: "public: void __thiscall complejo::SetReal(double)" (?SetReal@complejo@@QAEXN@Z) already defined in complejo.obj StdAfx.obj : error LNK2005: "public: void __thiscall complejo::SetImag(double)" (?SetImag@complejo@@QAEXN@Z) already defined in complejo.obj StdAfx.obj : error LNK2005: "public: class complejo __thiscall complejo::Suma(class complejo)" (?Suma@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj StdAfx.obj : error LNK2005: "public: class complejo __thiscall complejo::Resta(class complejo)" (?Resta@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj StdAfx.obj : error LNK2005: "public: class complejo __thiscall complejo::Multiplica(class complejo)" (?Multiplica@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj StdAfx.obj : error LNK2005: "public: class complejo __thiscall complejo::Cociente(class complejo)" (?Cociente@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj StdAfx.obj : warning LNK4006: "public: __thiscall complejo::complejo(void)" (??0complejo@@QAE@XZ) already defined in complejo.obj; second definition ignored StdAfx.obj : warning LNK4006: "public: __thiscall complejo::complejo(double,double)" (??0complejo@@QAE@NN@Z) already defined in complejo.obj; second definition ignored StdAfx.obj : warning LNK4006: "public: void __thiscall complejo::SetData(void)" (?SetData@complejo@@QAEXXZ) already defined in complejo.obj; second definition ignored StdAfx.obj : warning LNK4006: "public: void __thiscall complejo::SetReal(double)" (?SetReal@complejo@@QAEXN@Z) already defined in complejo.obj; second definition ignored StdAfx.obj : warning LNK4006: "public: void __thiscall complejo::SetImag(double)" (?SetImag@complejo@@QAEXN@Z) already defined in complejo.obj; second definition ignored StdAfx.obj : warning LNK4006: "public: class complejo __thiscall complejo::Suma(class complejo)" (?Suma@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj; second definition ignored StdAfx.obj : warning LNK4006: "public: class complejo __thiscall complejo::Resta(class complejo)" (?Resta@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj; second definition ignored StdAfx.obj : warning LNK4006: "public: class complejo __thiscall complejo::Multiplica(class complejo)" (?Multiplica@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj; second definition ignored StdAfx.obj : warning LNK4006: "public: class complejo __thiscall complejo::Cociente(class complejo)" (?Cociente@complejo@@QAE?AV1@V1@@Z) already defined in complejo.obj; second definition ignored Creating library Debug/complejo.lib and object Debug/complejo.exp Debug/complejo.dll : fatal error LNK1169: one or more multiply defined symbols found Error executing link.exe. Tengo rato buscando el error y no doy, segun veo en foros gringos que leo, que el problema es en las cabezeras pero nada no doy :-\ Salu2 Título: Re: Ayuda Erroir error LNK2005 already defined Publicado por: Arkangel_0x7C5 en 23 Julio 2011, 21:43 pm Funciones duplicadas a causa de que defines la implementacion de los metodos de la clase en un fichero .h que se inclulle varias veces. Tienes que declarar la definicion de la clase en un .h y la implementacion de sus metodos la haces en un fichero .cpp a parte que se compila y linkea con los otros
Saludos Título: Re: Ayuda Erroir error LNK2005 already defined Publicado por: -MicrO- en 23 Julio 2011, 22:21 pm Funciones duplicadas a causa de que defines la implementacion de los metodos de la clase en un fichero .h que se inclulle varias veces. Tienes que declarar la definicion de la clase en un .h y la implementacion de sus metodos la haces en un fichero .cpp a parte que se compila y linkea con los otros Saludos Amigo la verdad no te entendi bien. Es que en esto somos noob, hasta ahora estamos empezando. Título: Re: Ayuda Erroir error LNK2005 already defined Publicado por: Arkangel_0x7C5 en 24 Julio 2011, 00:51 am Amigo la verdad no te entendi bien. este error:Es que en esto somos noob, hasta ahora estamos empezando. StdAfx.obj : error LNK2005: "public: __thiscall complejo::complejo(void)" (??0complejo@@QAE@XZ) already defined in complejo.obj Te esta diciendo que a encontrado 2 veces la implementacion del metodo complejo de la clase complejo Esto pasa porque: complejo::complejo(){ } lo colocaste en un archivo de extension .h que se inclulle en varios archivos. Por lo que se lo encuentra varias veces Título: Re: Ayuda Erroir error LNK2005 already defined Publicado por: -MicrO- en 24 Julio 2011, 04:59 am este error: StdAfx.obj : error LNK2005: "public: __thiscall complejo::complejo(void)" (??0complejo@@QAE@XZ) already defined in complejo.obj Te esta diciendo que a encontrado 2 veces la implementacion del metodo complejo de la clase complejo Esto pasa porque: complejo::complejo(){ } lo colocaste en un archivo de extension .h que se inclulle en varios archivos. Por lo que se lo encuentra varias veces ah ya, cierto ya logre solucionar los errores ahora me encuentro con esto: (http://img695.imageshack.us/img695/4053/ejer3.jpg) Estoy buscando a ver que es: segun entiendo que cuando uno trabaja en MFC AppWizard (dll) no ejecuta si no que hay que buscarle algo. ando viendo a ver. Título: Re: Ayuda Erroir error LNK2005 already defined Publicado por: Arkangel_0x7C5 en 24 Julio 2011, 10:41 am Citar Linking.... Lo que ocurre es que has generado una dll que no es ejecutable directamente. Las dll son cargadas por otros programas para usar sus funciones. Para que se ejecutara tendrías que cargarla con otro programa o cambiar el proyecto para que te genere un exe, una aplicacion win32complejos.dll error(s) 0 warnin(s) 0 Saludos Título: Re: Ayuda Erroir error LNK2005 already defined Publicado por: -MicrO- en 24 Julio 2011, 14:28 pm Lo que ocurre es que has generado una dll que no es ejecutable directamente. Las dll son cargadas por otros programas para usar sus funciones. Para que se ejecutara tendrías que cargarla con otro programa o cambiar el proyecto para que te genere un exe, una aplicacion win32 Saludos Si, pero no puedo cambiar el proyecto el ejercio esta en MFC AppWizard (dll) y asi tengo que dejarlo y no se con que otro programa ejecutarlo, hay me pide buscar el ejecutable y al seleccionarlo solo me abre el programa mas no me muestra la ventana con el programa Título: Re: Ayuda Erroir error LNK2005 already defined Publicado por: Arkangel_0x7C5 en 24 Julio 2011, 14:42 pm pues tienes 2 opciones Cambiar el proyecto a Aplicación MFC o crear otro proyecto que use esa dll
no hay mas... Título: Re: Ayuda Erroir error LNK2005 already defined Publicado por: -MicrO- en 24 Julio 2011, 14:57 pm pues tienes 2 opciones Cambiar el proyecto a Aplicación MFC o crear otro proyecto que use esa dll no hay mas... y como cambio el proyecto? Aplicación MFC seria MFC AppWizard(exe)? o tendria que crearlo de nuevo.? |