Anuncios Google

Compilar Codigo C [Resuelto]

Hola pues, estoy haciendo algo de practica con el lenguaje C para psp, pero no he podido compilar est codigo. (no genera el eboot)

aca lo dejo

/*Jugando con las funciones en PSP*/
/*Autor: Irving Omar */
/*Fecha: 03/05/10 hora de inicio- 20:22*/
#include <pspkernel.h>
#include <pspdebug.h>
 
PSP_MODULE_INFO("Funciones en PSP. by irving", 1, 0, 0);/*Titulo y la version de nuestro APP*/
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);/*Decimos que nuestra aplicacion correra en 
                                                 modo user*/
/*Simplificamos las ordenes (no estoy seguro de como se llamen, asi que le puse ordenes, ya que ordenan
a que se haga cierta accion)*/
 
#define printf pspDebugScreenPrintf /*simplificamos esa orden a extensa a un sumple Printf*/
#define delay sceKernelDelayThread /*simplificamos esa orden a un simple delay(retardo)*/
#define clearscreen pspDebugScreenClear /*simplificamos esa orden a un simple clearscreen(limpiar pantalla)*/
 
int main() /*Abrimos menu y las funciones que utilizaremos*/
{
          delay(2*1000*1000); /*ponemos un retardo de dos segundos para que aparezca texto en nuestra pantalla*/
          pspDebugScreenSetTextColor(0xc040a0); /*Damos un color a las letras que se imprimiran en pantalla, es en
                                                 hexadecimal (morado)*/
 
          printf("Prueba de funciones (Principalmente la de Retardo;Delay)");/*Imprimir este texto en pantalla*/
          delay(5*1000*1000);/*Retardo*/
          clearscreen();/*Limpiamos la pantalla*/
          printf("Saliendo en 5 Segundos ... 5");
          delay(1*1000*1000);/*Retardo*/
          clearscreen();
          printf("Saliendo en 4 Segundos ... 4");
          delay(1*1000*1000);/*Retardo*/
          clearscreen();
          printf("Saliendo en 3 Segundos ... 3");
          delay(1*1000*1000);
          clearscreen();
          printf("Saliendo en 2 Segundos ... 2");
          delay(1*1000*1000);
          clearscreen();
          printf("Saliendo en 1 Segundo ... 1");
          delay(1*1000*1000);
          clearscreen();
          printf("ADIOS...");
 
          sceKernelExitGame();/*salimos de la APP*/
 
sceKernelSleepThread();
 
 
          return 0;
}/*Cerramos*/
 

Espero me puedan hechar una mano, jeje no me regañen :P apenas voy empezando.

Un saludo

PD: he revisdo el codigo y tenia infinidad de errores que ya he corregido, ya logre compilar el codigo(generar el eboot) solo que al pasarlo al psp y ejcutarlo, solo se sale de la aplicacion directo al XMB.

Edito: Ya funciona, Gracias a TODOS por la ayuda.


 


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 pspgorrister

Te falta inicializar la

Te falta inicializar la pantalla. Pon esta linea al principio de la función main()

pspDebugScreenInit();

Por cierto, queda un poco "raro" 1*1000*1000. Da igual lo que multipliques por 1, porque dará el mismo resultado ("1000*1000"). También puedes abreviar el "2*1000*1000" por un "2000*1000".

Sobre el primer delay() que tienes en el código, sobra.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de iRVing_Prog

gracias,

pspgorrister, ahora lo intento, es que intente, con el sleep que me dijo, A-C2(perdon no supe como poner el 2 arriba :s) y no me funciono, aparte no supe como definirla.

Gracias, ya ahora modifico el codigo haber que pasa.

Un saludo.

Edito: Excelente ya funciono, creo que si tenia que poner la linea, esa para que inciara la pantalla, esa era la razon por la cual no se imprimia nada.


 

Imagen de Adrian_ac2

Solucion

/*Jugando con las funciones en PSP*/
/*Autor: Irving Omar*/
/*Fecha: 03/05/10 hora de inicio- 20:22*/
#include <pspkernel.h>
#include <pspdebug.h>
 
PSP_MODULE_INFO("Funciones en PSP. by irving", 1, 0, 0);/*Titulo y la version de nuestro APP*/
PSP_MAIN_THREAD_ATTR(PSP_MAIN_THREAD_ATTR_USER);/*Decimos que nuestra aplicacion correra en modo user*/
/*Simplificamos las ordenes (no estoy seguro de como se llamen, asi que le puse ordenes, ya que ordenan a que se haga cierta accion)*/
 
#define printf pspDebugScreenPrintf/*simplificamos esa orden a extensa a un sumple Printf*/
#define delay sceKernelDelayThread/*simplificamos esa orden a un simple delay(retardo)*/
#define clearscreen pspDebugScreenClear/*simplificamos esa orden a un simple clearscreen(limpiar pantalla)*/
 
int main() /*Abrimos menu y las funciones que utilizaremos*/
{
          delay(2*1000*1000); /*ponemos un retardo de dos segundos para que aparezca texto en nuestra pantalla*/
          pspDebugScreenSetTextColor(0xc040a0); /*Damos un color a las letras que se imprimiran en pantalla, es en
                                                 hexadeciaml (morado)*/
 
          printf("Prueba de funciones (Principalmente la de Retardo;Delay)");/*Imprimir este texto en pantalla*/
          delay(5*1000*1000);/*Retardo*/
          clearscreen();/*Limpiamos la pantalla*/
          printf("Saliendo en 5 Segundos ... 5");
          delay(1*1000*1000);/*Retardo*/
          clearscreen();
          printf("Saliendo en 4 Segundos ... 4");
          delay(1*1000*1000);/*Retardo*/
          clearscreen();
          printf("Saliendo en 3 Segundos ... 3");
          delay(1*1000*1000);
          clearscreen();
          printf("Saliendo en 2 Segundos ... 2");
          delay(1*1000*1000);
          clearscreen();
          printf("Saliendo en 1 Segundo ... 1");
          delay(1*1000*1000);
          clearscreen();
          printf("ADIOS...");
 
          sceKernelExitGame();/*salimos de la APP*/
          sceKernelSleepThread();
 
 
          return 0;
}/*Cerramos*/

 

Bueno lo que encontre era que  en la funcion main escribiste in main y es int main, te faltaron algunos ";". Creo que por lo demas esta bn. Aunque te falta el make. Bueno, suerte con tu code y sigue asi.

Saludos

PDA. Se sale al xmb porque no pones una pausa y recuerda que el se ejucata rapidamente al llegar a las ultimas lineas pones "sceKernelExitGame();" eso te saca al xmb.


 

Imagen de iRVing_Prog

ya he corregido el codigo

y tambien tenia error en esta linea

PSP_MAIN_THREAD_ATTR(PSP_MAIN_THREAD_ATTR_USER);

que en realidad es:
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);


Bueno ya lo he corregido, solo que en el psp no hace nada, te dejo lo que esta escrito en el makefile
haber si me puedes ayudar.
TARGET = EBOOT.PBP
OBJS = main.o
 
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
 
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Funciones C
 
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Este makefile es el del Hello World, no le modifique casi nada, no se si estara bien(pienso que no si no
correria sin problemas el EBOOT


 

Imagen de Adrian_ac2

Ya lo escribi ahi arriba,

Ya lo escribi ahi arriba, pero se sale al xmb porque no pones una pausa y recuerda que el se
ejucata rapidamente al llegar a las ultimas lineas pones
"sceKernelExitGame();" eso te saca al xmb.

Saludos


 

Imagen de iRVing_Prog

Pero no escribe nada

en pantalla, comprendo de que me saque de la aplicacion alos tantos segundos(que ya conte, no es bug si no la orden que le doy).

Pero antes de todo eso, no imprime nada en pantalla, como deberia de hacer, crees que sea problema del makefile o del source?


 

Imagen de Adrian_ac2

Creo que el problema esta en

Creo que el problema esta en el delay. Yo no uso esa forma, la verdad que para lo que quieres hacer, yo uso la libreria "#include <time.h>" y la funcion "sleep(numero);", :S no recuerdo si es en segundo o milisegundos que cuenta pero pruebalo a ver como te va.

Saludos


 

Imagen de pspgorrister

sleep() no pertenece a

sleep() no pertenece a time.h, no es una función de C estándar.

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.