KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: C compiler problem
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich habe das pspsdk installiert und wollte ein programm wie in nem tutorial beschrieben ist machen.
Aber bei make bin ich jetz hängen geblieben , weil da immer fehler kommen :

Code:
C:\PSPHW>make
psp-gcc -I. -IC:/pspdev/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150   -c
-o main.o main.c
main.c: In function 'SetupCallbacks':
main.c:24: error: stray '\327' in program
main.c:24: error: expected ')' before numeric constant
main.c:24: error: too few arguments to function 'sceKernelCreateThread'
main.c: In function 'main':
main.c:33: warning: implicit declaration of function 'PspDebugScreenInit'
main.c:41: warning: passing argument 1 of 'sceCtrlReadBufferPositive' from incom
patible pointer type
make: *** [main.o] Error 1


was hab ich denn falsch gemacht, und ausserdem geht das hb dann nur auf 1.50? =S

mfg bizzy93

bizzy93 :
Hallo,
ich habe das pspsdk installiert und wollte ein programm wie in nem tutorial beschrieben ist machen.
Aber bei make bin ich jetz hängen geblieben , weil da immer fehler kommen :

Code:
C:\PSPHW>make
psp-gcc -I. -IC:/pspdev/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150   -c
-o main.o main.c
main.c: In function 'SetupCallbacks':
main.c:24: error: stray '\327' in program
main.c:24: error: expected ')' before numeric constant
main.c:24: error: too few arguments to function 'sceKernelCreateThread'
main.c: In function 'main':
main.c:33: warning: implicit declaration of function 'PspDebugScreenInit'
main.c:41: warning: passing argument 1 of 'sceCtrlReadBufferPositive' from incom
patible pointer type
make: *** [main.o] Error 1


was hab ich denn falsch gemacht, und ausserdem geht das hb dann nur auf 1.50? =S

mfg bizzy93


Post mal den Code... ich denk du hast dich einfach irgendwo verschrieben (z.B. heißt es pspDebugScreenInit, nicht PspDebugScreenInit).

Also das is der code:

Code:
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>

PSP_MODULE_INFO("Helloworld", 0, 1, 1);

#define printf pspDebugScreenPrintf

static int running = 1;
int exit_callback(int arg1, int arg2, void *common) {
        running = 0;
        sceKernelExitGame();
        return 0;
  }
int CallbackThread(SceSize args, void *argp) {
        int cbid;
        cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
        sceKernelRegisterExitCallback(cbid);
        sceKernelSleepThreadCB();
        return 0;
  }
int SetupCallbacks(void) {
        int thid = 0;
        thid = sceKernelCreateThread("update_thread", CallbackThread, 0×11, 0xFA0, THREAD_ATTR_USER, 0);
        if(thid >= 0) {
                sceKernelStartThread(thid, 0, 0);
          }
        return thid;
  }

  int main()
  {
    PspDebugScreenInit();
    SetupCallbacks();
    SceCtrlData pad;

    printf("Hallo Welt!");

    while(running)
    {
        sceCtrlReadBufferPositive("&pad", 1);
        if (pad.Buttons & PSP_CTRL_CROSS)
        {
            sceKernelExitGame();
        }
    }
    return 0;
  }


also der fehler mit dem pspDebugScreenInit wäre geklärt aber die anderen fehler kommen trotzdem noch. Und ich kann sie nicht fnden :o
EDIT: das mit den callbacks solte eig nicht der fehler sein denn das hab ich von der tut site kopiert^^(verstehe ich jetz auch noch nicht) vlt. ahben die ja was falsch geschrieben

bizzy93 :
Also das is der code:

Code:
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>

PSP_MODULE_INFO("Helloworld", 0, 1, 1);

#define printf pspDebugScreenPrintf

static int running = 1;
int exit_callback(int arg1, int arg2, void *common) {
        running = 0;
        sceKernelExitGame();
        return 0;
  }
int CallbackThread(SceSize args, void *argp) {
        int cbid;
        cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
        sceKernelRegisterExitCallback(cbid);
        sceKernelSleepThreadCB();
        return 0;
  }
int SetupCallbacks(void) {
        int thid = 0;
        thid = sceKernelCreateThread("update_thread", CallbackThread, 0×11, 0xFA0, THREAD_ATTR_USER, 0);
        if(thid >= 0) {
                sceKernelStartThread(thid, 0, 0);
          }
        return thid;
  }

  int main()
  {
    PspDebugScreenInit();
    SetupCallbacks();
    SceCtrlData pad;

    printf("Hallo Welt!");

    while(running)
    {
        sceCtrlReadBufferPositive("&pad", 1);
        if (pad.Buttons & PSP_CTRL_CROSS)
        {
            sceKernelExitGame();
        }
    }
    return 0;
  }


1. Es sollte 0x11 anstatt 0×11 heißen (bei dem sceKernelCreateThread)...
2. PspDebugScreenInit(); -> pspDebugScreenInit();
3. sceCtrlReadBufferPositive("&pad", 1); -> sceCtrlReadBufferPositive(&pad, 1);

ok warte probier ich mal gleich
kannste mir auch mal gleich ein gutes makefile dafür schicken? , glaub miens is falsch!

EDIT: Ok habs jetz , hab ein makefile gefunden dass funkt. mal sehen obs auch auf der psp klappt.
und danke für die korrektur^^
was heisst denn das jetz ??? :
make: *** No rule to make target `graphics.o', needed by `Graphic.elf'. Stop.

wollte einfach ein bild anzeigen lassen aber , ich versteh von dieser zeile nichts

EDIT: Jetz gehts, hab framebuffer.c/.h und graphics.c/.h alle einfach in den projekt ordner kopiert!
geht das nicht auch anders? also ausse immer die ganzen datein in projekt ordner kopieren zu müssen.?

bizzy93 :
was heisst denn das jetz ??? :
make: *** No rule to make target `graphics.o', needed by `Graphic.elf'. Stop.

wollte einfach ein bild anzeigen lassen aber , ich versteh von dieser zeile nichts

EDIT: Jetz gehts, hab framebuffer.c/.h und graphics.c/.h alle einfach in den projekt ordner kopiert!
geht das nicht auch anders? also ausse immer die ganzen datein in projekt ordner kopieren zu müssen.?


Jop, müssen sie.
Du kannst höchstens nen unterordner erstellen und dann in der makefile statt graphics.o framebuffer.o einfach unterordner/graphics.o unterordner/framebuffer.o schreiben.

aso , das ist glaub ich besser;
dann kann ich ja gleich C:/ordner/graphics.o machen und muss dann nie wieder kopieren oder?
Referenz-URLs