[U-co] Error: "Fallo de segmentacion" al ejecutar programa con librerias SDL

Esteban zapata estebanpunk01 en gmail.com
Mar Ene 27 12:21:42 UTC 2009


Hola amigos, como van!

Pues le comento:
Yo estoy realizando un programa de facturación, un hobbie para
mantener mis conocimientos al dia. El programa al compilarlo con gcc
compila normalmente, sin errores, pero al ejecutar el archivo me manda
un error que dice: "Fallo de Segmentacion"

He buscado en google, tambien he buscado en los man de GCC y el de SDL
y nada encuentro, que me pueden decir al respecto sobre ese error? si
pueden proporcionarme una solucion muy amables
Vale la aclaración que estoy programando en C++, utilizo las librerias
SDL1.2 y poseo el escritorio KDE 4.1. Tambien he intentado correrlo en
XFCE4, GNOME y LXDE pero en todos me salen lo mismo, entonces el error
es del ejecutable o del compilador?

Aca complemento mi codigo:

//Archivos de Cabecera.
#include<SDL/SDL.h>
#include<SDL/SDL_image.h>
#include<SDL/SDL_ttf.h>
#include<iostream>
#include<math.h>
#include<fstream>

//Menus del programa.
void menu_ppal();

//Variables globales.

SDL_Surface *pantalla;
SDL_Surface *texto;
SDL_Event *teclas;
SDL_Surface *icono;
SDL_Rect ubicacion;
SDL_Color color;

using namespace std;
int main()
{
       //Colocamos nombre a la pantalla y elegimos el icono.
       SDL_WM_SetCaption("FacLine - Programa de Facturación -", NULL);
       icono = IMG_Load("/home/esteban/Facline/48.png");
       if(icono == NULL)
       {
               cerr << "No se pudo cargar los archivos necesarios..." <<
SDL_GetError() << endl;
               exit(1);
       }
       SDL_WM_SetIcon(icono, NULL);

       //Iniciamos SDL.
       if(SDL_Init(SDL_INIT_VIDEO) < 0)
       {
               cerr << "Error al iniciar SDL, consulte con su
administrador..." <<
SDL_GetError() << endl;
               exit(1);
       }
       atexit(SDL_Quit);

       //Seleccionamos el modo de video.
       pantalla = SDL_SetVideoMode(700, 520, 24, SDL_ANYFORMAT);
       if(pantalla == NULL)
       {
               cerr << "No se pudo establecer el modo de video..." <<
SDL_GetError() << endl;
               exit(1);
       }

       //Iniciamos el TTf-
       if(TTF_Init() < 0)
       {
               cerr << "Error al inciar las fuentes..." << SDL_GetError() <<
endl;
               exit(1);
       }
       atexit(TTF_Quit);
       menu_ppal();
       return 0;
}

//Menu Principal.
void menu_ppal()
{
       char x; //Variable de desición.

       //"Creamos" la fuente para SDL.
       TTF_Font *fuente;
       fuente = TTF_OpenFont("/home/esteban/Facline/facline.ttf", 40);
       color.r = 255;
       color.g = 255;
       color.b = 255;
       texto = TTF_RenderText_Blended(fuente, "Menu Facturas [F]", color);
       ubicacion.x = 100;
       ubicacion.y = 100;
       SDL_BlitSurface(texto,NULL,pantalla,&ubicacion);
       SDL_Flip(pantalla);
       texto = TTF_RenderText_Blended(fuente, "Menu Clientes [C]", color);
       ubicacion.x += 10;
       ubicacion.y += 10;
       ubicacion.h = texto->h;
       ubicacion.w = texto->w;
       SDL_BlitSurface(texto,NULL,pantalla,&ubicacion);
       SDL_Flip(pantalla);
}

Gracias a todos por su ayuda!


-- 
http://mistoffeles.blogspot.com

Software Libre

"Linux es como el mito de la caverna, no conoces la verdad hasta que no te
desates..."



Más información sobre la lista de distribución Ubuntu-co