Error POO en SDL

Iniciado por Puntoinfinito, 5 Julio 2013, 01:26 AM

0 Miembros y 1 Visitante están viendo este tema.

Puntoinfinito

Hola!!

Estoy aplicando mis conocimientos de POO a SDL y para comenzar queria hacer un pong, pero me da unos errores diciendo de que no he definido las funciones de las clases cuando si lo he hecho en los .cpp de cada header!! :/ Bueno, os dejo con el problema que es global xD y el codigo para que os fijeis en que me falta. Saludos!!

Citar/tmp/ccuLFlB8.o: En la función `main':
main.cpp:(.text+0x39): referencia a `init::Init(std::string)' sin definir
main.cpp:(.text+0x5b): referencia a `input::getKey()' sin definir
main.cpp:(.text+0x65): referencia a `input::getKey()' sin definir
main.cpp:(.text+0x6f): referencia a `raquet::moveRaquet()' sin definir
main.cpp:(.text+0x79): referencia a `raquet::moveRaquet()' sin definir
main.cpp:(.text+0xab): referencia a `graphics::loadImage(std::string)' sin definir
main.cpp:(.text+0xb8): referencia a `raquet::getY()' sin definir
main.cpp:(.text+0xcc): referencia a `collision::checkCollision(int, SDL_Surface*, int)' sin definir
main.cpp:(.text+0x116): referencia a `graphics::loadImage(std::string)' sin definir
main.cpp:(.text+0x123): referencia a `raquet::getY()' sin definir
main.cpp:(.text+0x137): referencia a `collision::checkCollision(int, SDL_Surface*, int)' sin definir
main.cpp:(.text+0x159): referencia a `raquet::getY()' sin definir
main.cpp:(.text+0x166): referencia a `raquet::getX()' sin definir
main.cpp:(.text+0x19a): referencia a `graphics::loadImage(std::string)' sin definir
main.cpp:(.text+0x1ac): referencia a `graphics::drawImage(SDL_Surface*, int, int)' sin definir
main.cpp:(.text+0x1ce): referencia a `raquet::getY()' sin definir
main.cpp:(.text+0x1db): referencia a `raquet::getX()' sin definir
main.cpp:(.text+0x20f): referencia a `graphics::loadImage(std::string)' sin definir
main.cpp:(.text+0x221): referencia a `graphics::drawImage(SDL_Surface*, int, int)' sin definir
main.cpp:(.text+0x245): referencia a `SDL_Flip' sin definir
main.cpp:(.text+0x24f): referencia a `SDL_Delay' sin definir
collect2: error: ld devolvió el estado de salida 1

Código : https://docs.google.com/file/d/0B_bICudPUUcpMVNkOFFSMkU3d2s/edit?usp=sharing



AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

pacoperico

Asi a bote pronto diria que la biblioteca SDL no la tienes correctamente instalada o configurada. Posiblemente el linker no enlaza con los archivos de SDL. Echale un ojo a este enlace:

http://lazyfoo.net/SDL_tutorials/lesson01/index.php

amchacon

Error de linkado.

¿Cómo compilas tú? Si lo haces con líneas de comandos tienes que escribir el nombre de todos los archivos (o usar un makefile).

Si usas un IDE como Codeblocks, tienes que meter todos los archivos en un mismo proyecto.

Además de eso, tienes que inicializar el vídeo, las SDL y tienes que "linkar" con la librería SDL... Si me dices tu SO y las herramientas que utilizas te lo explico.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Puntoinfinito

Edito con vim, y sí, estaba compilando desde la terminal. :/ El vídeo ya lo inicio en el código (init.cpp) y que yo sepa linkeo ya la librería SDL.
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

amchacon

Cita de: Puntoinfinito en  5 Julio 2013, 16:25 PM
Edito con vim, y sí, estaba compilando desde la terminal. :/ El vídeo ya lo inicio en el código (init.cpp) y que yo sepa linkeo ya la librería SDL.
Tienes que incluir todos los archivos cpp en la compilación:

Código (cpp) [Seleccionar]
g++ main.cpp init.cpp input.cpp...
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Puntoinfinito

Los headers también, no?? Con un makefile como se haría??
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

amchacon

Cita de: Puntoinfinito en  5 Julio 2013, 16:35 PM
Los headers también, no??
No, los headers se añaden solitos con el #include

Con Codeblocks todo esto es más fácil  ;)
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

Puntoinfinito

Y el orden de los archivos source durante la compilacion (g++ code1.cpp ...) importa??
AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.

amchacon

Como norma general, no.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar