27.01.2011, 22:44
Hallo liebe C Experten!
Ich bin gerade dabei, mich in C für die PSP einzuarbeiten.
Ich benutze Ceikors PSP-SDK 1.0, also wohl ein erweitertes MINPSPW, Notepad++ und kompiliere über cmd.
Nun ja, Variablen, Funktionen, Schleifen, if-Abfragen beherrsche ich, ist nichts neues für mich. Hello World hat auch problemlos geklappt.
Nun wollte ich mich an die Umsetzung eines einfachen Menüs nach dem Tutorial auf psp-prgramming bzw. qj.net machen, da da Textausgabe mit genauer Position dabei ist (also nicht nur die Debug-Textausgabe).
Dafür muss man ja nun die graphics.h mit einbinden.
Ich habe also, nachdem das Compilen nicht klappte, einfach alles aus dem Tut reinkopiert, doch es kommt derselbe Fehler:
Ich bin gerade dabei, mich in C für die PSP einzuarbeiten.
Ich benutze Ceikors PSP-SDK 1.0, also wohl ein erweitertes MINPSPW, Notepad++ und kompiliere über cmd.
Nun ja, Variablen, Funktionen, Schleifen, if-Abfragen beherrsche ich, ist nichts neues für mich. Hello World hat auch problemlos geklappt.
Nun wollte ich mich an die Umsetzung eines einfachen Menüs nach dem Tutorial auf psp-prgramming bzw. qj.net machen, da da Textausgabe mit genauer Position dabei ist (also nicht nur die Debug-Textausgabe).
Dafür muss man ja nun die graphics.h mit einbinden.
Ich habe also, nachdem das Compilen nicht klappte, einfach alles aus dem Tut reinkopiert, doch es kommt derselbe Fehler:
Code:
make: *** No rule to make target `graphics.o', needed by `hello.elf'. Stop.
Hier mal die main.c:
Code:
#include <pspkernel.h>
#include <pspcallbacks.h>
#include <pspctrl.h>
#include "graphics.h"
#define RGB(r, g, b) ((r)|((g)<<8)|((b)<<16))
PSP_MODULE_INFO("Menu Example",0,1,1);
Color white = RGB(255,255,255);
Color red = RGB(255,0,0);
Color black = RGB(0,0,0);
char menuItems[10][25] = {
{"Item 0"},
{"Start"},
{"Options"},
{"Item 2"},
{"Controls"},
{"Online Play"},
{"Item 6"},
{"Item 7"},
{"Credits"},
{"Exit"},
};
int timer,select,foo;
SceCtrlData pad;
int main() {
initGraphics();
SetupCallbacks();
while(1) {
sceCtrlReadBufferPositive(&pad,1);
fillScreenRect(white,0,0,480,272);
timer++;
for(foo=0;foo<10;foo++) {
printTextScreen(200,foo*10+70,menuItems[foo],black);
}
printTextScreen(200,select*10+70,menuItems[select],red);
if((pad.Buttons & PSP_CTRL_UP) && (timer > 10) && (select > 0)) {
select--;
timer = 0;
} else if ((pad.Buttons & PSP_CTRL_DOWN) && (timer > 10) && (select < 9)) {
select++;
timer = 0;
}
flipScreen();
}
return 0;
}
Und die Makefile:
Code:
TARGET = menu
OBJS = main.o graphics.o framebuffer.o
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBS = -lpspgu -lpng -lz -lm
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Menu
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
Vielleicht könntet ihr mir bei der Gelegenheit auch kurz erklären, warum man, wenn man die graphics.h (und damit auch die framebuffer) einbindet, die Objekte in der Makefile hinzufügen muss (also z.B. graphics.o, da ist ja iwo der Fehler)? Wenn ich die pspdebug.h einbinde, ist das doch auch nicht nötig?
Danke schonmal!
MfG
uPSP_08