EDITO: No se que pasa, m0skit0, pero no me deja compilar y me da el mismo fallo, esta vez en debian y con gcc,g++ y make instalados.
Me parece que estoy gafado. Pero es que me da el mismo error si convierto tbyte(el typedef) en uint: al hacer el casting de tbyte* a tdirección (ambos uint) me da un error y para la compilación. No sé que más hacer.
Si, pero sigue igual. No será por ser de 64 bits mi pc? La longitud de un puntero en 64 bits es mayor que la del uin, de ahí el error. Voy a forxar la compilación en modo 32 bits y comprobar si el fallo persiste.
Al parecer en 32 bits no protesta, pero no puedo saberlo porque lo enmascaran otros errores. En 64 bits se puede corregir usando [strike]size_tlong unint en lugar de uint, probaré a ver despues de las clases.[/strike]
alvaro@alvarosteam:~/Proyectos/psp-emu$ make cc -ggdb -c *.cpp cc -o psp_emu *.o cAllegrex.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cAllegrex.o:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0' cAllegrex.o:(.eh_frame+0xc2): undefined reference to `__gxx_personality_v0' cBloque.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cBloque.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cControladorMemoria.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cControladorMemoria.o:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0' cControladorMemoria.o:(.eh_frame+0x12e): undefined reference to `__gxx_personality_v0' cCop0.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cCop0.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cEstadoCPU.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cEstadoCPU.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cLib.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cLib.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cMapeoDireccion.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cMapeoDireccion.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cMapeoDireccionamiento.o: In function `~cMapeoDireccionamiento': /home/alvaro/Proyectos/psp-emu/cMapeoDireccionamiento.cpp:35: undefined reference to `operator delete(void*)' /home/alvaro/Proyectos/psp-emu/cMapeoDireccionamiento.cpp:35: undefined reference to `operator delete(void*)' cMapeoDireccionamiento.o: In function `cMapeoDireccionamiento::nuevoMapeo(cMapeoDireccion)': /home/alvaro/Proyectos/psp-emu/cMapeoDireccionamiento.cpp:70: undefined reference to `operator new(unsigned long)' /home/alvaro/Proyectos/psp-emu/cMapeoDireccionamiento.cpp:70: undefined reference to `operator delete(void*)' cMapeoDireccionamiento.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cMapeoDireccionamiento.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cMapeoDireccionamiento.o:(.eh_frame+0xd7): undefined reference to `__gxx_personality_v0' cMemOrden.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cMemOrden.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cMemoria.o: In function `~cMemoria': /home/alvaro/Proyectos/psp-emu/cMemoria.cpp:38: undefined reference to `operator delete(void*)' /home/alvaro/Proyectos/psp-emu/cMemoria.cpp:38: undefined reference to `operator delete(void*)' cMemoria.o: In function `cMemoria::validar()': /home/alvaro/Proyectos/psp-emu/cMemoria.cpp:98: undefined reference to `operator new(unsigned long)' /home/alvaro/Proyectos/psp-emu/cMemoria.cpp:98: undefined reference to `operator delete(void*)' cMemoria.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cMemoria.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' cMemoria.o:(.eh_frame+0x67): undefined reference to `__gxx_personality_v0' cPSP.o: In function `cPSP::mapearControladorMemoria(void*, long, unsigned int, tComponente)': /home/alvaro/Proyectos/psp-emu/cPSP.cpp:78: undefined reference to `operator new(unsigned long)' /home/alvaro/Proyectos/psp-emu/cPSP.cpp:78: undefined reference to `operator delete(void*)' /home/alvaro/Proyectos/psp-emu/cPSP.cpp:86: undefined reference to `operator delete(void*)' cPSP.o: In function `cPSP::cargarPreIPL()': /home/alvaro/Proyectos/psp-emu/cPSP.cpp:117: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(char const*, std::_Ios_Openmode)' /home/alvaro/Proyectos/psp-emu/cPSP.cpp:118: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::is_open()' /home/alvaro/Proyectos/psp-emu/cPSP.cpp:122: undefined reference to `std::basic_istream<char, std::char_traits<char> >::read(char*, long)' /home/alvaro/Proyectos/psp-emu/cPSP.cpp:123: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::close()' /home/alvaro/Proyectos/psp-emu/cPSP.cpp:137: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream()' /home/alvaro/Proyectos/psp-emu/cPSP.cpp:137: undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::~basic_ifstream()' cPSP.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' cPSP.o:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0' cPSP.o:(.eh_frame+0xe6): undefined reference to `__gxx_personality_v0' main.o: In function `main': /home/alvaro/Proyectos/psp-emu/main.cpp:12: undefined reference to `std::cout' /home/alvaro/Proyectos/psp-emu/main.cpp:12: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' /home/alvaro/Proyectos/psp-emu/main.cpp:19: undefined reference to `std::cout' /home/alvaro/Proyectos/psp-emu/main.cpp:19: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' /home/alvaro/Proyectos/psp-emu/main.cpp:23: undefined reference to `std::cout' /home/alvaro/Proyectos/psp-emu/main.cpp:23: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' /home/alvaro/Proyectos/psp-emu/main.cpp:27: undefined reference to `std::cout' /home/alvaro/Proyectos/psp-emu/main.cpp:27: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' /home/alvaro/Proyectos/psp-emu/main.cpp:27: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(int)' main.o: In function `__static_initialization_and_destruction_0': /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()' /usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()' main.o:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0' main.o:(.eh_frame+0x56): undefined reference to `__gxx_personality_v0' collect2: ld devolvió el estado de salida 1 make: *** [all] Error 1
Bienvenido a CSI. Estoy que no me lo creo, pero por lo menos el error original no está
Última edición por Yn$an€ el 22 Feb 2011, 13:12, editado 1 vez en total.
Te dejo los permisos de escritura, al fin y al cabo has hecho un buen curro, y errores cometemos todos. Y si quieres un consejo: usa Eclipse, así te ahorras el programa SVN y líos de esos.
Si quieres mantener un SO de 64 bits en tu PC, no te queda más remedio que instalarte una máquina virtual de 32.
Si hombre, pero vaya fallos! Una de estas y te quedas sin repositorios.
Tengo ya el eclipse.
Bueno, de todas formas hasta que termine con los errores me quedo fuera. Comentaré lo que queda del código mientras.
Saludos
-- Doble Post --
Bueno, bueno bueno. Ni idea de que era el fallo, pero con eclipse + redefiniendo tDireccion a uintptr_t funciona perfecto. De la nada al todo. Listo para 64bits
-- Doble Post --
EDIT: El make tenía problemas. Casi seguro que era eso lo que me daba los fallos a lo bestia. Bueno, me pongo con la GUI ahora mismo. Por cierto, con el cambio del tipo de dato también debería de funcionar en 32 bits, 16 o lo que sea. Vamos, que el compilador se las apaña.
Yn$an€ escribió:Por cierto, con el cambio del tipo de dato también debería de funcionar en 32 bits, 16 o lo que sea. Vamos, que el compilador se las apaña.
Me parece que se escapan algunas cosas. Prueba un sizeof() sobre ese tipo de dato a ver su tamaño en un SO de 64 bits.
EDITO: por cierto, ¿qué cabecera incluyes para ese tipo de dato?