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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Hola mundo en SDL2 en: 12 Enero 2016, 16:04 pm
Hola gente Estoy siguiendo el tutorial_SDL.pdf para SDL1 y tengo unas pequeñas dudas de como compilarlo para SDL2.  Hasta ahora aprendí que debo poner : #include <SDL2/SDL.h> y para compilarlo por ejemplo : g++ -o test test1.c -lSDL2 , y compila a la perfección para algunos ejemplos. También con   :  g++ -o test test1.cpp `sdl2-config --cflags --libs` funciona a la perfección.

La idea es poder volver a escribir el tutorial este para sdl2 con licencia libre como estaba, con todos los ejemplos compilados funcioando en odt o en pdf, y pedirle permiso al autor, citarlo y poner otras cosas mas, todo en regla.

Aquí va el código fuente del hola mundo:

Código:

// Listado : Prueba.cpp
// Hola Mundo
// g++ -o test  Prueba.cpp `sdl2-config --cflags --libs`

#include <stdio.h>
#include <SDL2/SDL.h>


int main() {
SDL_Surface *pantalla; //Definimos una superficie
SDL_Event evento;      //Definimos una variable de eventos

// Inicializamos SDL

if (SDL_Init(SDL_INIT_VIDEO)) {
//En Caso de error
fprintf(sdterr,"Error al inicializar SDL: %s\n",SDL_GetError() );
exit(1);
}
atexit(SDL_Quit); // Al salir, cierra SDL
// Establecemos el modo de pantalla
pantalla = SDL_SetVideoMode(640,480,0,SDL_ANYFORMAT);
if (pantalla == Null) {
//Si no hemos podido inicializar la superficie
fprintf(stderr,"Error al crear la superficie: %s \n",SDL_GetError() );
exit(1);
}
// Personalizamos el título de la ventana
SDL_WM_SetCaption("Hola mundo",NULL);
//Bucle infinito
for(;;) {
//Consultamos los eventos
while (SDL_PollEvent(&evento)){
if (evento.type == SDL_QUIT) //si es de salida
return 0;
}
}
}


compilo con : g++ -o test  Prueba.cpp `sdl2-config --cflags --libs` y me salen errores de compilación

Citar
prueba.cpp: In function ‘int main()’:
prueba.cpp:17:11: error: ‘sdterr’ was not declared in this scope
   fprintf(sdterr,"Error al inicializar SDL: %s\n",SDL_GetError() );
           ^
prueba.cpp:22:40: error: ‘SDL_ANYFORMAT’ was not declared in this scope
  pantalla = SDL_SetVideoMode(640,480,0,SDL_ANYFORMAT);
                                        ^
prueba.cpp:22:53: error: ‘SDL_SetVideoMode’ was not declared in this scope
  pantalla = SDL_SetVideoMode(640,480,0,SDL_ANYFORMAT);
                                                     ^
prueba.cpp:23:18: error: ‘Null’ was not declared in this scope
  if (pantalla == Null) {
                  ^
prueba.cpp:29:37: error: ‘SDL_WM_SetCaption’ was not declared in this scope
  SDL_WM_SetCaption("Hola mundo",NULL);
                                   ^

Si alguien sabe algún  tutorial de SDL2, la verdad hace días que los busco y nada.

Desde ya muchas gracias y espero que varios también aprendan con mis dudas
2  Programación / Programación C/C++ / Ayuda en SDL 2.0.4 en la configuración en Debian 8.2.0 en: 7 Enero 2016, 17:10 pm
Hola gente : soy nuevo en el foro y en SDL, asi que no me peguen mucho ;D .  Mi conocimiento de C/C++ es medio y me quiero poner a desarrollar video juegos bajo entorno linux con la libreria SDL.

La pregunta es ya desempaquete el .tar.gz con
1. tar xvzf <nombre archivo>
2. ./configure 
3. make
4. sudo make install

ejecuto en la terminal sdl-config  --version  y obtengo la respuesta "2.0.4" hasta ahi todo ok

ahora quiero probar el siguiente código y no me lo compila ¿por que? ayuda por favor ...

Código:

#include <SDL/SDL.h>
#include <stdio.h>

int main () {

     if (SDL_Init(SDL_INIT_VIDEO) <0) {
              fprintf(stderr, "no se puede inicializar SDL: %s \n", SDL_GetError());
              exit(1);
     }
    else {
              fprintf(stdout, "SDL se ha inicializado \n");
              atexit(SDL_Quit);
   }
   return 0;
}


para compilar pongo lo siguiente :

g++ -o test test1.c -lSDL y me dice que no existe el fichero o el directorio

terminal_$ g++ -o test test1.c -lSDL
test1.c:3:21: fatal error: SDL/SDL.h: No existe el fichero o el directorio
 #include <SDL/SDL.h>
                     
ya probe poner SDL.h solo y no pasa nada. ¿Porque usa g++ si esta usando <stdio.h>? ¿no deberia ser <iostream.h>?  ::) .   :-[  .

Ayuda por favor, disculpen la ignorancia de mi parte.
compilation terminated.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines