Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink




EDIT: laissez tomber je post et je m'aperçois que je n'avais pas exporté la fonctions -_-
maintenant ça compile wink

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