Título: Programa en C++ no sirve. Publicado por: Cmega3 en 5 Agosto 2013, 16:01 pm Hola,
Ultimamente he estado aprendiendo C++ basico. Segui un tutorial, y llegue a esto: Una prueba. (http://www.learncpp.com/cpp-tutorial/111-comprehensive-quiz/) Estoy usando Code::Blocks con Digital Mars. Estoy en el paso #2, sin embargo recibo este error: ||=== Quiz, Debug ===| obj\Debug\main.o||In function `Z10ReadNumberv':| C:\Users\ClaudioJ\Desktop\Code\C++\Quiz\io.cpp|7|multiple definition of `ReadNumber()'| obj\Debug\io.o:C:\Users\ClaudioJ\Desktop\Code\C++\Quiz\io.cpp|7|first defined here| obj\Debug\main.o||In function `Z11WriteAnsweri':| C:\Users\ClaudioJ\Desktop\Code\C++\Quiz\io.cpp|16|multiple definition of `WriteAnswer(int)'| obj\Debug\io.o:C:\Users\ClaudioJ\Desktop\Code\C++\Quiz\io.cpp|16|first defined here| ||=== Build finished: 4 errors, 0 warnings (0 minutes, 0 seconds) ===| Estas son las files que estoy usando: main.cpp Código: #include <iostream> io.cpp Código: #include <iostream> Título: Re: Programa en C++ no sirve. Publicado por: avesudra en 5 Agosto 2013, 22:11 pm Vamos a ver, aunque esto va a en el subforo de C++ te respondo aquí, el error te dice que hay una definición múltiple de las funciones ReadNumber() y WriteAnswer() ¿y porqué? pues como podrás imaginar si en "io.cpp" ya están definidas esas funciones, y las defines otra vez en main.cpp hay una definición múltiple tal y como dice el compilador. Teóricamente deberías incluir un archivo de cabecera(.hpp) no uno de fuente(.cpp) pero como hasta tal punto no llego prefiero quedarme al margen. Para arreglarlo simplemente elimina las definiciones de las dos funciones del main.cpp aunque no es la mejor opción.
Título: Re: Programa en C++ no sirve. Publicado por: Cmega3 en 5 Agosto 2013, 22:49 pm Ya he borrado todas las referencias anteriores, y me da el mismo error.
Título: Re: Programa en C++ no sirve. Publicado por: avesudra en 5 Agosto 2013, 23:38 pm Ya he borrado todas las referencias anteriores, y me da el mismo error. Como ya me suponía no puedes hacer un include al archivo de fuente así que simplemente quita el:Código Y vuelve a poner las definiciones de las funciones en el main.cpp. El cual queda así: Código Y el io.cpp queda exactamente como estaba. Obviamente el compilador generará dos archivos objeto que luego enlazará. ¡Un saludo! Título: Re: Programa en C++ no sirve. Publicado por: Cmega3 en 6 Agosto 2013, 00:59 am Como ya me suponía no puedes hacer un include al archivo de fuente así que simplemente quita el: Código Y vuelve a poner las definiciones de las funciones en el main.cpp. El cual queda así: Código Y el io.cpp queda exactamente como estaba. Obviamente el compilador generará dos archivos objeto que luego enlazará. ¡Un saludo! ¡Muchas gracias! Esto resolvió mi problema. |