Anuncios Google

Problema al compilar SDL

Hola estoy haciendo pruebas en SDL el problema es que cuando quiero compilar no me va y me da error en todas las lineas SDL_

#include stdio.h
#include stdlib.h
#include SDL.h 
 
int main(int argc, char *argv[]) { 
 
  if (SDL_Init(SDL_INIT_VIDEO) < 0) {
      printf("No se pudo iniciar SDL: %s\n",SDL_GetError());
      exit(1);
   }
 
sdl_Surface screen,imagen1;
 
screen = SDL_SetVideoMode(640,480,24,SDL_SWSURFACE| SDL_DOUBLEBUF);
if ( screen == NULL ){
    fprintf(stderr, "No se puede establecer el modo de video 640x480: %s\n", SDL_GetError());
    exit(1);
}
 
 
 
SDL_Quit();
 
return 0;
}

Uso Dev c++ con las librerias SDL SDL_IMAGE SDL_MIXER instaladas.

 

Ayuda porfavor.... Llora


Mi blog: adriel0000.wordpress.com

 

un saludo.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ateno_3

Linker

#include <stdio.h>   /* Se te ha olvidado poner los simbolos < y > */
#include <stdlib.h>
#include <SDL.h>
 
int main(int argc, char *argv[]) { 
 
  if (SDL_Init(SDL_INIT_VIDEO) < 0) {
      printf("No se pudo iniciar SDL: %s\n",SDL_GetError());
      exit(1);
   }
 
SDL_Surface *screen, *imagen1; /* SDL debe ir en mayusculas, las estructuras SDL_Surface declararas como un puntero */
 
screen = SDL_SetVideoMode(640,480,24,SDL_SWSURFACE| SDL_DOUBLEBUF);
if ( screen == NULL ){
    fprintf(stderr, "No se puede establecer el modo de video 640x480: %s\n", SDL_GetError());
    exit(1);
}
 
 
 
SDL_Quit();
 
return 0;
}

Como dices que te da problema solo con las lineas que tienen funciones SDL, te diria que se te ha olvidado enlazar las librerias.

Yo uso Dev-Cpp y me genera automaticamente el Makefile

Pon esto en el Linker -> -lmingw32 -lSDLmain -lSDL -liberty (Si quieres usar las librerias mixer y de manejo de imagenes añade esto a lo antes -lSDL_mixer -lSDL_image ).

Comprueba que la libreria esta donde le has indicado ( en mi caso esta dentro de una carpeta y quedaria asi ->; include >SDL/SDL.h> ).


Programo en C, C++, C# y ASM ( Sintaxis INTEL y AT&T )

Proyectos:

- UnlockMii 5.0 ----> UnlockMii 5.1: ( EN CONSTRUCCION -> 2% )

- MiiOS ( EN CONSTRUCCION -> 0,01% )

El mejor antivirus ==> Avast!

Imagen de adriel0000

Muchas gracias

Muchas gracias no me habia dado cuenta por lo demas todo esta bien. Pero tengo un pequeño problema estoy intentando solucionarlo pero no encuentro manera.

#include <stdlib.h>
#include <stdio.h>
#include <SDL\SDL.h> // Libreria SDL
 
int main(int argc, char *argv[]) { 
SDL_Surface *screen;       // Definimos una superficie
 
//Surfaces de las imegenes------------------
SDL_Surface screen, imagen1;
//Se acaba surface de las imagenes----------
 
if(SDL_Init(SDL_INIT_VIDEO) < 0) //iniciamos el modo video
     {
	fprintf(stderr, "Error al inicializar SDL: %s\n", SDL_GetError());
	exit(1);
    }
 
 
    atexit(SDL_Quit);            // Al salir, cierra SDL
 
 
    screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
    if(screen == NULL); 
    {
    //En caso de error
	fprintf(stderr, "Error al crear la superficie: %s\n", SDL_GetError());
	exit(1);
    }
    //Cargamos la imagen------------------
    imagen1=SDL_LoadBMP("Imagen.bmp");
    SDL_Rect rectangulo;
    rectangulo.x=413;
    rectangulo.y=242;
    rectangulo.w=imagen->w;
    rectangulo.h=imagen->h;
    SDL_BlitSurface(Imagen1,NULL,Screen,&rectangulo);
 
    SDL_UpdateRects(screen,1,&rectangulo);
SDL_Quit();
 
return 0;
}

Me da error en la linea: 9, 34

 

 

 


Mi blog: adriel0000.wordpress.com

 

un saludo.

Imagen de joserc87

screen e imagen1

Ambas variables deben ser punteros a SDL_Surface. Añade un * delante de cada una.

Imagen de ateno_3

#include <stdlib.h> #include

#include <stdlib.h>
#include <stdio.h>
#include <SDL\SDL.h> // Libreria SDL
 
int main(int argc, char *argv[]) { 
SDL_Surface *screen;       // Definimos una superficie
 
//Surfaces de las imegenes------------------
SDL_Surface *screen, *imagen1; /* Declararos como punteros */
//Se acaba surface de las imagenes----------
 
if(SDL_Init(SDL_INIT_VIDEO) < 0) //iniciamos el modo video
     {
	fprintf(stderr, "Error al inicializar SDL: %s\n", SDL_GetError());
	exit(1);
    }
 
 
    atexit(SDL_Quit);            // Al salir, cierra SDL
 
 
    screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
    if(screen == NULL); 
    {
    //En caso de error
	fprintf(stderr, "Error al crear la superficie: %s\n", SDL_GetError());
	exit(1);
    }
    //Cargamos la imagen------------------
    imagen1=SDL_LoadBMP("Imagen.bmp");
    SDL_Rect rectangulo;
    rectangulo.x=413;
    rectangulo.y=242;
    rectangulo.w=imagen->w; /* El operador flecha (->) solo funciona con punteros */
    rectangulo.h=imagen->h;
    SDL_BlitSurface(Imagen1,NULL,Screen,&rectangulo);
 
    SDL_UpdateRects(screen,1,&rectangulo);
SDL_Quit();
 
return 0;
}


Programo en C, C++, C# y ASM ( Sintaxis INTEL y AT&T )

Proyectos:

- UnlockMii 5.0 ----> UnlockMii 5.1: ( EN CONSTRUCCION -> 2% )

- MiiOS ( EN CONSTRUCCION -> 0,01% )

El mejor antivirus ==> Avast!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.