Antwort schreiben  Thema schreiben 
Verfasser Nachricht
uPSP_08
Experte
****


Beiträge: 677
Gruppe: User
Registriert seit: May 2008

Status: Offline
Danke erhalten: 217
Beitrag: #1
xPSP  C Hilfe: No rule to make target...

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:

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! Wink

MfG Big Grin
uPSP_08

Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2011 17:50 von uPSP_08.

27.01.2011 22:44
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Ceikor
Ex-Developer
****


Beiträge: 581
Gruppe: User
Registriert seit: Dec 2008

Status: Abwesend
Danke erhalten: 701
Beitrag: #2
RE: C Hilfe: No rule to make target...

Weil zur grafics.h auch eine grafics.c gehört und aus dem grund gehört die dort rein.

Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2011 07:40 von Ceikor.

27.01.2011 23:05
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
uPSP_08 (Jan-28-2011), dx3m (Jan-28-2011)
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #3
RE: C Hilfe: No rule to make target...

OBJS = main.o graphics.o framebuffer.o

Wie Ceikor schon sagte fehlt hier die graphics.c.

Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2011 14:21 von HacKmaN.

28.01.2011 14:21
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
uPSP_08 (Jan-28-2011), dx3m (Jan-28-2011), pspbricker (Jan-28-2011)
uPSP_08
Experte
****


Beiträge: 677
Gruppe: User
Registriert seit: May 2008

Status: Offline
Danke erhalten: 217
Beitrag: #4
RE: C Hilfe: No rule to make target...

Ah ok, weil die graphics.c dazu gehört.
Aber warum kann ich die .h nicht einfach mit

Code:
#include &lt;graphics.h&gt;

einbinden statt mit "" (wobei ich sie ins selbe Verzeichnis kopieren muss), die liegt doch genau so im include-Verzeichnis wie z.B. die pspdebug.h, die ich auch über die eckigen Klammern include? Genau dann kommt nämlich der oben genannte Fehler.
Wenn ichs mit "" mach und die graphics und framebuffer ins selbe Verzeichnis tue, kommt auch eine Fehlermeldung:

Code:
psp-gcc -I. -Ic:/pspsdk/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150   -c
-o graphics.o graphics.c
In file included from c:/pspsdk/lib/gcc/../../psp/include/pngconf.h:243,
                 from c:/pspsdk/lib/gcc/../../psp/include/png.h:363,
                 from graphics.c:5:
c:/pspsdk/psp/sdk/include/stdio.h:29: error: static declaration of 'close' follo
ws non-static declaration
c:/pspsdk/lib/gcc/../../psp/include/sys/unistd.h:29: error: previous declaration
of 'close' was here
c:/pspsdk/psp/sdk/include/stdio.h:30: error: static declaration of 'read' follow
s non-static declaration
c:/pspsdk/lib/gcc/../../psp/include/sys/unistd.h:130: error: previous declaratio
n of 'read' was here
c:/pspsdk/psp/sdk/include/stdio.h:31: error: static declaration of 'write' follo
ws non-static declaration
c:/pspsdk/lib/gcc/../../psp/include/sys/unistd.h:175: error: previous declaratio
n of 'write' was here
c:/pspsdk/psp/sdk/include/stdio.h:32: error: static declaration of 'lseek' follo
ws non-static declaration
c:/pspsdk/lib/gcc/../../psp/include/sys/unistd.h:113: error: previous declaratio
n of 'lseek' was here
make: *** [graphics.o] Error 1

Worauf die Meldung verweist, sind doch Dateien, die von der u.a. von der graphics.c eingebunden werden. An denen hab ich doch gar nix verändert...

Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2011 18:02 von uPSP_08.

28.01.2011 18:00
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
uPSP_08
Experte
****


Beiträge: 677
Gruppe: User
Registriert seit: May 2008

Status: Offline
Danke erhalten: 217
Beitrag: #5
RE: C Hilfe: No rule to make target...

Also ich werd hier einfach nicht schlau draus.
Bin ich jetzt total blöd!?
Ich hab das PSP-SDK 1.0 mal deinstalliert und MinPSPGW installiert, mit dem kommt dieser Fehler nicht (dafür ein anderer, aber ok...). Dann hab ich MinPSPGW wieder deinstalliert und wieder Ceikors PSP-SDK 1.0 installiert, und es kam wieder der Fehler von oben. Also muss es doch am SDK liegen, oder? Zumal ich doch den Sourcecode einfach nur aus dem Tutorial kopiert hab.
Wäre für eine Lösung des Problems und der oben gestellten Frage sehr dankbar. Wink

greez

01.02.2011 20:13
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
atze96
Legende
*****


Beiträge: 1.584
Gruppe: User
Registriert seit: Oct 2010

Status: Offline
Danke erhalten: 434
Beitrag: #6
RE: C Hilfe: No rule to make target...

Kann es sein das die makefile nicht im Ordner ist?
Das ist nämlich bei mit mal das prob gewesen

01.02.2011 20:15
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
uPSP_08
Experte
****


Beiträge: 677
Gruppe: User
Registriert seit: May 2008

Status: Offline
Danke erhalten: 217
Beitrag: #7
RE: C Hilfe: No rule to make target...

Nene, die ist schon drin. Wink

01.02.2011 20:20
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #8
RE: C Hilfe: No rule to make target...

Ach 'tschuldigung, hab den Thread vergessen Wink
Der Compiler war zu alt, den Fehler hatte ich schon unzählige Male Smile
Gut dass du es selber gelöst hast, aber wenn ich den Thread nicht vergessen hätte, hätt ich es dir gleich sagen können Wink

01.02.2011 21:28
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Cha0z (Feb-3-2011), uPSP_08 (Feb-3-2011), dark-awesome (Feb-1-2011)
uPSP_08
Experte
****


Beiträge: 677
Gruppe: User
Registriert seit: May 2008

Status: Offline
Danke erhalten: 217
Beitrag: #9
RE: C Hilfe: No rule to make target...

Ist doch kein Problem, danke, dass du nochmal geantwortet hast.
Aber so ganz gelöst ist es ja noch nicht. Heißt das also, dass ich das PSP-SDK 1.0 nicht nehmen sollte? Lieber MinPSPGW oder doch gleich am besten unter Linux alles einrichten?
Und warum kann ich nochmal die graphics.h nicht über

Code:
#include &lt;graphics.h&gt;

einbinden, obwohl sie im include-Verzeichnis liegt?

03.02.2011 18:12
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP Ultimate Target Force GT 10 styla_king_009 9 2.003 16.06.2011 07:18
Letzter Beitrag: -blue7

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang