[PSP] Error compilando :S

Bueno, este es una parte del codigo:


int main(void)
{
    pspDebugScreenInit();
    pspDebugScreenSetBackColor(0x00000000);
    pspDebugScreenSetTextColor(0x00ffffff);
    pspDebugScreenClear();
    sceCtrlSetSamplingCycle(0);
    sceCtrlSetSamplingMode(PSP_CTRL_MODE_DIGITAL);
    row = 0;
    // load the kernel module up
    SceUID mod = pspSdkLoadStartModule("batser.prx", PSP_MEMORY_PARTITION_KERNEL);
    if (mod < 0)
    {
        printf("  Error 0x%08X cargando batser.prx.\n", mod);
        exitApp();
    }
    showWarn();
    showMenu();
    doMenu();

    exitApp();   
    return 0;   // never reaches here, again, just to suppress warning
}




y al compilar me da esto:




[ COMIENZO DE COMPILACION ]

D:\Documents and Settings\krosk32\Mis documentos\ospbt_0.1\src>MAKE
psp-gcc -I. -IC:\PSPide\/psp/sdk/include -O2 -G0 -Wall   -c -o main.o main.c
main.c: In function 'main':
main.c:396: warning: implicit declaration of function 'pspSdkLoadStartModule'
psp-gcc -I. -IC:\PSPide\/psp/sdk/include -O2 -G0 -Wall -I. -IC:\PSPide\/psp/sdk/include -O2 -G0 -Wall   -c -o BatSer.o BatSer.S
psp-gcc -I. -IC:\PSPide\/psp/sdk/include -O2 -G0 -Wall  -L./ -L. -LC:\PSPide\/psp/sdk/lib -lm  main.o BatSer.o  -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspglue -lpspuser -lpspkernel -o ReadSer.elf
main.o: In function `main':
main.c:(.text+0xc58): undefined reference to `pspSdkLoadStartModule'
collect2: ld returned 1 exit status
MAKE: *** [ReadSer.elf] Error 1

[ FINALIZADO ]






Algun entendido me puede iluminar? no se que hago mal... el sdk es la version 1.0 beta pero le puse tambien las libs del sdk para 3.xx de M33, ya que la aplicacion trabaja en kernel 3.xx creo.

Es un programador de la bateria pandora basado en el opensource battery tool, mi intencion es poder hacer todo en un solo eboot, un menu:
1. Instalar firmware en memory stick
2. Instalar bateria Pandora
3. Dar conexion USB a memory stick


Offtopic: Ya soy adicto :D xd
por lo que peudo ver en el error, la funcion " pspSdkLoadStartModule()" a la que estas llamando, o bien no la tienes definida (es decir, que no la tengas incluida bien, en su #include) o bien si no es una clase sino un POO o un módulo del mismo programa puede ser que no le pases las variables correctamente o siga sin estar bien definido.

espero te ayude en algo ^^ esque no me acuerdo muy bein del C++ pero más o menos se refiere a eso.

salu2!
LoLoPoWeR escribió:por lo que peudo ver en el error, la funcion " pspSdkLoadStartModule()" a la que estas llamando, o bien no la tienes definida (es decir, que no la tengas incluida bien, en su #include) o bien si no es una clase sino un POO o un módulo del mismo programa puede ser que no le pases las variables correctamente o siga sin estar bien definido.

espero te ayude en algo ^^ esque no me acuerdo muy bein del C++ pero más o menos se refiere a eso.

salu2!


el include lo tiene que tener sino no de diría que no está definida, el problema es que no tiene enlazada la librería que la contiene que busque cual es y que la enlace
eso es a lo que me refiero, cuando da "Linked Error" es porque no la tienes definida o en el Include y "warning: implicit declaration of function 'pspSdkLoadStartModule'" se peude referir a que en el *.hpp no la tiene definida, es decir, que no esta puesta la cabecera.

perdon si no me he expresado con mas claridad.

salu2!
#include <pspiofilemgr.h>
#include <string.h>
#include <pspkernel.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <pspdebug.h>
#include <psppower.h>
#include <stdio.h>
#include <stdlib.h>
#include <pspkernel.h>
#include <pspctrl.h>
#include <psppower.h>
#include <pspdebug.h>
#include <pspsdk.h>
#include <malloc.h>


Puse bastantes por si acaso xd
creo que la funcion esa va o en pspsdk.h o en pspkernel.h, los dos estan incluidos... y respeto a las librerias no se, de eso no entiendo ni papa xd
lo que tienes mal es el makefile o la orden de compilación que usas
TARGET = ReadSer
OBJS = main.o BatSer.o

INCDIR =
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

BUILD_PRX = 1

LIBDIR = ./
LIBS =
LDFLAGS = -lm

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = OS Pandora Battery Tool

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Creo que esta bien :S
espero que aquí no exista el "Error T" :S me daría yuyu !

salu2!

PD: el dicho error salía en el compilador Borland C++ en el cual salía sin ningun motivo y la forma de solucionarlo era creando un neuvo archivo, hacías copy/paste y borrabas el otro ( llamaremos corrupto ) y guardabas el nuevo archivo con el nombre del anterior y así se quitaba el maldito error ^^
No uso borland c++, uso un port del gcc para windows xD
yo gasto estas

LIBS += -L/usr/local/pspdev/psp/lib -lm -lGL -L/usr/local/pspdev/psp/sdk/lib -lpspdebug -lpspgu -lpspctrl -lpspge -lpspdisplay -lpsphprm -lpspvfpu -lpspsdk -lpsprtc -lpspaudio -lc -lpspuser -lpsputility -lpspkernel -lstdc++ -lpsppower
Una cosita, la bateria de pandora no te estropea la bateria ¿? osea que solo se puede usar para eso ¿? ( no lo he seguido en su evolucion )

por que dices que no tienes ni idea de librerias ¿?
si jode las baterias mucho ojo con lo que hagas por que aunque compile , que funcione a la perfeccion es otra mundo :)

es mi humilde opinion.
jeje tranquilo, para no joder las baterias se puede restaurar a lo normal...
Tengo pensado hacer un generador de serials aleatorio, para evitar un posible patch de sony, imaginate que ponen esto:
if(Serial[0] == 0x1234 || Serial[1] == 0x5678)
{
pspFormatFlash0();
}

El code me lo acabo de inventar, no se como formatea la flash 0 xd

Como puedo hacer que acceda a las libs? las tengo situadas aqui:
C:\PSPide\psp\lib y C:\PSPide\psp\sdk\lib

al compilar ahora me tira el error con las libs y todo:
[ COMIENZO DE COMPILACION ]

C:\PSPide\projects\pandora>MAKE
psp-gcc -I. -IC:\PSPide\/psp/sdk/include -O2 -G0 -Wall   -c -o main.o main.c
main.c: In function 'main':
main.c:407: warning: implicit declaration of function 'pspSdkLoadStartModule'
psp-gcc -I. -IC:\PSPide\/psp/sdk/include -O2 -G0 -Wall -I. -IC:\PSPide\/psp/sdk/include -O2 -G0 -Wall   -c -o BatSer.o BatSer.S
psp-gcc -I. -IC:\PSPide\/psp/sdk/include -O2 -G0 -Wall  -L././psp/sdk/lib -L. -LC:\PSPide\/psp/sdk/lib -lm  main.o BatSer.o -lpspdebug -lpspgu -lpspctrl -lpspge -lpspdisplay -lpsphprm -lpspsdk -lpspaudio -lc -lpspuser -lpsputility -lpspkernel -lstdc++ -lpsppower -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspglue -lpspuser -lpspkernel -o ReadSer.elf
main.o: In function `main':
main.c:(.text+0xc58): undefined reference to `pspSdkLoadStartModule'
collect2: ld returned 1 exit status
MAKE: *** [ReadSer.elf] Error 1
11 respuestas