elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error de compilación en Dev C++ raro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error de compilación en Dev C++ raro  (Leído 3,869 veces)
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Error de compilación en Dev C++ raro
« en: 5 Mayo 2012, 14:37 pm »

Buenas

no trabajo casi nada con Windows ni con Dev C++, así que no sé muy bien a qué es debido este error.

Yo tengo un proyecto con tres archivos:

main.cpp
Código
  1. #include <iostream>
  2. #include "vectordinamico.h"
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.    vectorDinamico<int> aux(5);
  8. }

vectordinamico.h
Código
  1. #ifndef __VECTORDINAMICO_H__
  2. #define __VECTORDINAMICO_H__
  3.  
  4. #include <vector>
  5. #include <list>
  6.  
  7. using namespace std;
  8.  
  9. template <typename T>
  10. class vectorDinamico{
  11.   private:
  12.      list<vector<T> > datos;
  13.      int tamBloque;
  14.   public:
  15.      vectorDinamico();
  16.      ~vectorDinamico();
  17.      vectorDinamico(int tam);
  18. };
  19.  
  20. #endif

vectordinamico.cpp
Código
  1. #include "vectordinamico.h"
  2.  
  3.  
  4. template <typename T>
  5. vectorDinamico<T>::vectorDinamico(){
  6.   tamBloque = 0;
  7. }
  8.  
  9. template <typename T>
  10. vectorDinamico<T>::~vectorDinamico(){
  11.   tamBloque = 0;
  12. }
  13.  
  14. template <typename T>
  15. vectorDinamico<T>::vectorDinamico(int tam){
  16.   tamBloque = tam;
  17.   vector<T> aux(tamBloque);
  18.   datos.push_back(aux);
  19. }

Pero al compilar tengo este error:

Código:
[Linker error] undefined reference to `vectorDinamico<int>::vectorDinamico(int)'
[Linker error] undefined reference to `vectorDinamico<int>::~vectorDinamico()'

Seguro que es una tontería,

¿alguien sabe qué pasa?

Saludos!


En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Error de compilación en Dev C++ raro
« Respuesta #1 en: 5 Mayo 2012, 17:25 pm »

Hola

En la facultad me han enseñado que con templates se escribe la implementación de los métodos en el .h y no hace falta el .cpp, pero no sé el motivo de esto. Pruébalo a ver si funciona

"vectordinamico.h"
Código
  1. #ifndef __VECTORDINAMICO_H__
  2. #define __VECTORDINAMICO_H__
  3.  
  4. #include <vector>
  5. #include <list>
  6.  
  7. using namespace std;
  8.  
  9. template <typename T>
  10. class vectorDinamico{
  11.   private:
  12.      list<vector<T> > datos;
  13.      int tamBloque;
  14.   public:
  15.      vectorDinamico();
  16.      ~vectorDinamico();
  17.      vectorDinamico(int tam);
  18. };
  19.  
  20.  
  21. template <typename T>
  22. vectorDinamico<T>::vectorDinamico(){
  23.   tamBloque = 0;
  24. }
  25.  
  26. template <typename T>
  27. vectorDinamico<T>::~vectorDinamico(){
  28.   tamBloque = 0;
  29. }
  30.  
  31. template <typename T>
  32. vectorDinamico<T>::vectorDinamico(int tam){
  33.   tamBloque = tam;
  34.   vector<T> aux(tamBloque);
  35.   datos.push_back(aux);
  36. }
  37.  
  38. #endif
  39.  

Saludos


En línea

Breakbeat como forma de vida
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: Error de compilación en Dev C++ raro
« Respuesta #2 en: 5 Mayo 2012, 18:16 pm »

Hola gracias,

bueno lo he probado pero eso no soluciona el problema.

Yo apostaría a que todo está bien, quizá deba ser problema del compilador de Dev C++

¿Me recomendais algún otro software para Windows?
En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
STANHMAL

Desconectado Desconectado

Mensajes: 107


ςταηhmαl - hηαfε


Ver Perfil WWW
Re: Error de compilación en Dev C++ raro
« Respuesta #3 en: 5 Mayo 2012, 19:35 pm »

¿Me recomendais algún otro software para Windows?

Usa el Visual C++, es muy bueno, o si prefieres algo libre, puedes usar el NetBeans en conjunto con el gcc, hacen una combinación potente.

$4!u2
En línea

Power Metal vs Reggaeton



Que es mi ordenador mi tesoro que todo el mundo ha de temer. Mi ley, el ratón y el módem. Mi única patria, la red
n0z

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Error de compilación en Dev C++ raro
« Respuesta #4 en: 5 Mayo 2012, 21:04 pm »

Quizá sea porque no has configurado el directorio de includes(ficheros cabecera).
Tienes que ir a opciones de proyecto, y mira en la pestaña directorio de includes y pon el directorio donde tengas el .h
En línea

exel

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Error de compilación en Dev C++ raro
« Respuesta #5 en: 5 Mayo 2012, 21:32 pm »


"vectordinamico.h"
Código
  1. #ifndef __VECTORDINAMICO_H__
  2. #define __VECTORDINAMICO_H__
  3.  
  4. #include <vector>
  5. #include <list>
  6.  
  7. using namespace std;
  8.  
  9. template <typename T>
  10. class vectorDinamico{
  11.   private:
  12.      list<vector<T> > datos;
  13.      int tamBloque;
  14.   public:
  15.      vectorDinamico();
  16.      ~vectorDinamico();
  17.      vectorDinamico(int tam);
  18. };
  19.  
  20.  
  21. template <typename T>
  22. vectorDinamico<T>::vectorDinamico(){
  23.   tamBloque = 0;
  24. }
  25.  
  26. template <typename T>
  27. vectorDinamico<T>::~vectorDinamico(){
  28.   tamBloque = 0;
  29. }
  30.  
  31. template <typename T>
  32. vectorDinamico<T>::vectorDinamico(int tam){
  33.   tamBloque = tam;
  34.   vector<T> aux(tamBloque);
  35.   datos.push_back(aux);
  36. }
  37.  
  38. #endif
  39.  

 Esta solucion es correcta, ademas falta el pequeño detalle de no agregar el return 0 para main().

 Kasswed el error es que los metodos que se encuentran en vectordinamico.cpp no existen para el compilador ya que no encuentra referencia hacia el mismo. Por eso, cuando intentas compilar main.cpp, en la especificacion de este hay una referencia a vectordinamico.h, pero ni en vectordinamico.h ni en main.cpp existe referencia a vectordinamico.h.

 Perdon por la redundancia.

Saludos
En línea

Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: Error de compilación en Dev C++ raro
« Respuesta #6 en: 6 Mayo 2012, 01:49 am »

Quizá sea porque no has configurado el directorio de includes(ficheros cabecera).
Tienes que ir a opciones de proyecto, y mira en la pestaña directorio de includes y pon el directorio donde tengas el .h

Hola N0Z, lo he intentado configurar pero el error persiste.

exel como he dicho, lo he probado así y tampoco me soluciona el error. Yo creo que debe ser un error de Dev C++. Diría que g++ en Linux compila, la cosa es que ahora no puedo probar.

Dev C++ es raro, si me da estos errores así cada dos por tres, paso de trabajar con él.

Descargando Visual C++ a ver qué tal.

Netbeans no me gusta mucho.
En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
exel

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Error de compilación en Dev C++ raro
« Respuesta #7 en: 6 Mayo 2012, 02:23 am »

 Precisamente, he descargado la ultima version del dev-c++ para probarlo y funciono.
En línea

Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: Error de compilación en Dev C++ raro
« Respuesta #8 en: 6 Mayo 2012, 21:10 pm »

Es cursioso jaja

le pongo un return 0; al main, y me compila.

Le pongo un comentario después del return 0; al main, y ya no me compila

Jaja este Dev C++ parace muy fiable.
En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
n0z

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Error de compilación en Dev C++ raro
« Respuesta #9 en: 8 Mayo 2012, 00:34 am »

Es cursioso jaja

le pongo un return 0; al main, y me compila.

Le pongo un comentario después del return 0; al main, y ya no me compila

Jaja este Dev C++ parace muy fiable.

Cuando le pones el comentario al main, le pones un comentario de una sola linea, ¿no? no vaya a ser que se te haya pasado y estes comentando el } que cierra.

Por curiosidad, ¿es que algún compilador deja que a una función que devuelve un entero, no le digas que tiene que retornalo?
« Última modificación: 8 Mayo 2012, 00:38 am por N0Z » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error De Compilacion :'( « 1 2 »
Programación Visual Basic
Petro_Boca 13 4,501 Último mensaje 2 Agosto 2010, 21:45 pm
por BlackZeroX
Error de compilacion
Programación Visual Basic
Mr.Blue 4 4,206 Último mensaje 22 Agosto 2010, 01:17 am
por Mr.Blue
error de compilacion
Programación C/C++
mapers 2 2,201 Último mensaje 8 Septiembre 2010, 13:27 pm
por JuszR
John the ripper Error de compilacion -- make: *** [generic.h] Error 1 --
GNU/Linux
hbenzin 2 3,207 Último mensaje 20 Agosto 2011, 23:42 pm
por hbenzin
Error raro en la compilación de este sencillo código. « 1 2 3 4 5 »
Programación C/C++
OmarHack 41 21,493 Último mensaje 10 Junio 2013, 07:52 am
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines