Pages : 1
#1 Le 06/09/2008, à 22:55
- Jonyjack
[résolu]Référence indéfinie
Bonjour à tous
je reviens encore une fois pour vous faire partager mes problèmes sur la programmation PSP
cette fois-ci c'est la compilation qui pose soucis
j'aimerais compiler un main.cpp seulement il doit accèder au flash de la console et cela ne peut être fait qu'en mode kernel. Il faut donc mettre les fonctions dans un prx (le dll de la PSP)
seulement lors de la compilation j'ai ce message :
main.o: dans la fonction « testKey(SceCtrlData const&, SceCtrlData const&, PspCtrlButtons, char const*, int)»:
main.cpp:(.text+0x334): référence indéfinie vers « CopyExecute »
collect2: ld a retourné 1 code d'état d'exécution
make: *** [a.elf] Erreur 1
En fait c'est la fonction CopyExecute qui est dans le prx qui est ensuite appelée dans le main qui pose problème
Voici le Makefile :
# le dossier où sera copié l'eboot
MOUNT_POINT = /home/joris/Bureau
# le nom qui apparait dans le XMB
PSP_EBOOT_TITLE = Flasheur_by_Jonyjack
# l'icone de l'eboot
PSP_EBOOT_ICON = NULL
# l'animation dans le XMB
PSP_EBOOT_ANIM = NULL
# l'image transparente
PSP_EBOOT_FOREGROUND = NULL
# l'icone de fond
PSP_EBOOT_BACKGROUND = NULL
# la musique jouée dans le XMB
PSP_EBOOT_SND0 = NULL
######################################### LOADER
CXXFLAGS = -G0 -Wall -O3 -D_PSP_FW_VERSION=371 -fno-rtti -fno-exceptions
INCDIR = -I. -I$(PSPSDK)/include
LIBDIR = -L. -L/usr/local/pspdev/lib -L$(PSPSDK)/lib -specs=/usr/local/pspdev/psp/sdk/lib/prxspecs -Wl,-q,-T/usr/local/pspdev/psp/sdk/lib/linkfile.prx
LIBS = /usr/local/pspdev/psp/sdk/lib/prxexports.o -lstdc++ -lpspctrl -lpspdebug -lpspge -lpspdisplay -lpspsdk -lc -lpspuser
OBJECTS = main.o kernelprx_ldr.o
CC = psp-g++
######################################### PRX
PRX_NAME = kernelprx
CC_PRX = psp-gcc
CXXFLAGS_PRX = -G0 -Wall -O3 -D_PSP_FW_VERSION=371
INCDIR_PRX = -I$(PSPSDK)/include -I. -I$(PSPSDK)/include/libc
LIBDIR_PRX = -L. -L/usr/local/pspdev/psp/sdk/lib -specs=/usr/local/pspdev/psp/sdk/lib/prxspecs -Wl,-q,-T/usr/local/pspdev/psp/sdk/lib/linkfile.prx -mno-crt0 -nostartfiles
LIBS_PRX = -lpspnand_driver -lpspnand_driver2 -lpspdebug -lpspge_driver -lpspdisplay_driver -lpspctrl_driver -lc -lpspsdk -lpspkernel
OBJECTS_PRX = main_prx.o $(PRX_NAME).o
#########################################################
#########################################################
all: $(PRX_NAME).prx EBOOT.PBP
cp $(PRX_NAME).prx $(MOUNT_POINT)
cp EBOOT.PBP $(MOUNT_POINT)
EBOOT.PBP: PARAM.SFO a.prx $(PSP_EBOOT_ICON) $(PSP_EBOOT_FOREGROUND) $(PSP_EBOOT_BACKGROUND) $(PSP_EBOOT_ANIM) $(PSP_EBOOT_SND0)
pack-pbp $@ PARAM.SFO $(PSP_EBOOT_ICON) $(PSP_EBOOT_ANIM) $(PSP_EBOOT_FOREGROUND) $(PSP_EBOOT_BACKGROUND) $(PSP_EBOOT_SND0) a.prx NULL
PARAM.SFO: a.prx
mksfo $(PSP_EBOOT_TITLE) $@
a.prx: a.elf
psp-prxgen $< $@
a.elf: $(OBJECTS) Makefile
psp-gcc $(CXXFLAGS) $(LIBDIR) $(OBJECTS) $(LIBS) -o $@
psp-fixup-imports $@
main.o: main.cpp
$(CC) $(INCDIR) $(CXXFLAGS) -c -o $@ $<
kernelprx_ldr.o: kernelprx.S
psp-gcc $(INCDIR) $(CXXFLAGS) -c -o $@ $<
$(PRX_NAME).prx: $(PRX_NAME).elf
psp-prxgen $< $@
$(PRX_NAME).elf: $(OBJECTS_PRX) Makefile
$(CC_PRX) $(CXXFLAGS_PRX) $(LIBDIR_PRX) $(OBJECTS_PRX) $(LIBS_PRX) -o $@
psp-fixup-imports $@
main_prx.o: main_prx.c
$(CC_PRX) $(INCDIR_PRX) $(CXXFLAGS_PRX) -c -o $@ $<
$(PRX_NAME).o: $(PRX_NAME).c
$(CC_PRX) $(INCDIR_PRX) $(CXXFLAGS_PRX) -c -o $@ $<
$(PRX_NAME).c: $(PRX_NAME).exp
psp-build-exports -b $(PRX_NAME).exp > $(PRX_NAME).c
psp-build-exports -s $(PRX_NAME).exp
NULL:
clean:
rm -f $(OBJECTS) *.elf PARAM.SFO /home/joris/Bureau/EBOOT.PBB
rm -f $(OBJECTS_PRX) *.S $(PRX_NAME).elf /home/joris/Bureau/$(PRX_NAME).prx $(PRX_NAME).c
J'ai pu voir sur un autre forum que l'erreur pouvait venir du Makefile mais la personne qui l'a résolu n'a pas donné la solution
Merci d'avance
EDIT: laissez tomber je post et je m'aperçois que je n'avais pas exporté la fonctions -_-
maintenant ça compile
Dernière modification par Jonyjack (Le 06/09/2008, à 22:59)
Hors ligne
#2 Le 12/09/2008, à 09:08
- genma
Re : [résolu]Référence indéfinie
Ok.
"Lorsque tu as découvert le libre, tu sais que tu ne pourras plus jamais revenir en arrière".
Utilisateur d'Ubuntu depuis la version 4.10 !
Mon blog ? https://blog.genma.fr
Mon twitter? http://twitter.com/genma
Hors ligne
Pages : 1