Antwort schreiben  Thema schreiben 
Verfasser Nachricht
Schaschlix
Profi
****


Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009

Status: Offline
Danke erhalten: 71
Beitrag: #1
xPSP  [PSP C] Graphics Problem

Hallo Leute,

ich habe folgenden Code:

Code:
#include <pspkernel.h>
#include <pspdebug.h>
#include <framebuffer.h>
#include <pspgu.h>
#include <png.h>
#include <stdio.h>
#include <pspdisplay.h>
#include <pspctrl.h>
#include "graphics.h"


#define printf pspDebugScreenPrintf
#define RGB(r, g, b) ((r)|((g)<<8)|((b)<<16))

/* Define the module info section */
PSP_MODULE_INFO("Unzipper", 0, 1, 1);

/* Define the main thread's attribute value (optional) */
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common)
{
    sceKernelExitGame();
    return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp)
{
    int cbid;

    cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
    sceKernelRegisterExitCallback(cbid);

    sceKernelSleepThreadCB();

    return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void)
{
    int thid = 0;

    thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);

if(thid >= 0)
{
    sceKernelStartThread(thid, 0, 0);
}
return thid;
}

int main(int argc, char *argv[])
{
    pspDebugScreenInit();
    SetupCallbacks();
    initGraphics();

    pspDebugScreenSetTextColor(RGB(135,55,15));

    pspDebugScreenPrintf("Hello World\n");

    sceKernelSleepThread();

    return 0;
}



Jetzt bekomme ich beim Erstellen der EBOOT.PBP folgenden Fehler mit VC++:

Code:
1>graphics.o: In function `getVramDisplayBuffer':
1>graphics.c:(.text+0x30): undefined reference to `g_vram_base'
1>graphics.c:(.text+0x3c): undefined reference to `g_vram_base'
1>graphics.o: In function `fillScreenRect':
1>graphics.c:(.text+0x2c8): undefined reference to `g_vram_base'
1>graphics.o:graphics.c:(.text+0x2d0): more undefined references to `g_vram_base' follow
1>graphics.o: In function `guStart':
1>graphics.c:(.text+0x540): undefined reference to `sceGuStart'
1>graphics.o: In function `initGraphics':
1>graphics.c:(.text+0x554): undefined reference to `sceGuInit'
1>graphics.c:(.text+0x564): undefined reference to `sceGuStart'
1>graphics.c:(.text+0x578): undefined reference to `sceGuDrawBuffer'
1>graphics.c:(.text+0x58c): undefined reference to `sceGuDispBuffer'
1>graphics.c:(.text+0x594): undefined reference to `sceGuClear'
1>graphics.c:(.text+0x5a0): undefined reference to `sceGuDepthBuffer'
1>graphics.c:(.text+0x5ac): undefined reference to `sceGuOffset'
1>graphics.c:(.text+0x5c0): undefined reference to `sceGuViewport'
1>graphics.c:(.text+0x5cc): undefined reference to `sceGuDepthRange'
1>graphics.c:(.text+0x5e0): undefined reference to `sceGuScissor'
1>graphics.c:(.text+0x5e8): undefined reference to `sceGuEnable'
1>graphics.c:(.text+0x5f8): undefined reference to `sceGuAlphaFunc'
1>graphics.c:(.text+0x600): undefined reference to `sceGuEnable'
1>graphics.c:(.text+0x608): undefined reference to `sceGuDepthFunc'
1>graphics.c:(.text+0x610): undefined reference to `sceGuEnable'
1>graphics.c:(.text+0x618): undefined reference to `sceGuFrontFace'
1>graphics.c:(.text+0x620): undefined reference to `sceGuShadeModel'
1>graphics.c:(.text+0x628): undefined reference to `sceGuEnable'
1>graphics.c:(.text+0x630): undefined reference to `sceGuEnable'
1>graphics.c:(.text+0x638): undefined reference to `sceGuEnable'
1>graphics.c:(.text+0x64c): undefined reference to `sceGuTexMode'
1>graphics.c:(.text+0x658): undefined reference to `sceGuTexFunc'
1>graphics.c:(.text+0x664): undefined reference to `sceGuTexFilter'
1>graphics.c:(.text+0x66c): undefined reference to `sceGuAmbientColor'
1>graphics.c:(.text+0x674): undefined reference to `sceGuEnable'
1>graphics.c:(.text+0x68c): undefined reference to `sceGuBlendFunc'
1>graphics.c:(.text+0x694): undefined reference to `sceGuFinish'
1>graphics.c:(.text+0x6a0): undefined reference to `sceGuSync'
1>graphics.c:(.text+0x6b0): undefined reference to `sceGuDisplay'
1>graphics.o: In function `flipScreen':
1>graphics.c:(.text+0x6e4): undefined reference to `sceGuSwapBuffers'
1>graphics.o: In function `saveImage':
1>graphics.c:(.text+0x79c): undefined reference to `png_create_write_struct'
1>graphics.c:(.text+0x7b0): undefined reference to `png_create_info_struct'
1>graphics.c:(.text+0x7c4): undefined reference to `png_init_io'
1>graphics.c:(.text+0x7f0): undefined reference to `png_set_IHDR'
1>graphics.c:(.text+0x7fc): undefined reference to `png_write_info'
1>graphics.c:(.text+0x8a4): undefined reference to `png_write_row'
1>graphics.c:(.text+0x8c4): undefined reference to `png_write_end'
1>graphics.c:(.text+0x8d0): undefined reference to `png_destroy_write_struct'
1>graphics.c:(.text+0x92c): undefined reference to `png_set_IHDR'
1>graphics.c:(.text+0x938): undefined reference to `png_write_info'
1>graphics.c:(.text+0x94c): undefined reference to `png_destroy_write_struct'
1>graphics.o: In function `printTextScreen':
1>graphics.c:(.text+0xb04): undefined reference to `g_vram_base'
1>graphics.c:(.text+0xb08): undefined reference to `g_vram_base'
1>graphics.o: In function `clearScreen':
1>graphics.c:(.text+0xc40): undefined reference to `sceGuStart'
1>graphics.c:(.text+0xc48): undefined reference to `sceGuClearDepth'
1>graphics.c:(.text+0xc50): undefined reference to `sceGuClear'
1>graphics.c:(.text+0xc58): undefined reference to `sceGuFinish'
1>graphics.c:(.text+0xc6c): undefined reference to `sceGuSync'
1>graphics.o: In function `blitAlphaImageToScreen':
1>graphics.c:(.text+0xe3c): undefined reference to `sceGuStart'
1>graphics.c:(.text+0xe54): undefined reference to `sceGuTexImage'
1>graphics.c:(.text+0xe88): undefined reference to `sceGuTexScale'
1>graphics.c:(.text+0xf1c): undefined reference to `sceGuDrawArray'
1>graphics.c:(.text+0xf30): undefined reference to `sceGuGetMemory'
1>graphics.c:(.text+0xf58): undefined reference to `sceGuFinish'
1>graphics.c:(.text+0xf90): undefined reference to `sceGuSync'
1>graphics.o: In function `blitImageToScreen':
1>graphics.c:(.text+0xff0): undefined reference to `g_vram_base'
1>graphics.c:(.text+0xff8): undefined reference to `g_vram_base'
1>graphics.c:(.text+0x1018): undefined reference to `sceGuStart'
1>graphics.c:(.text+0x104c): undefined reference to `sceGuCopyImage'
1>graphics.c:(.text+0x1054): undefined reference to `sceGuFinish'
1>graphics.c:(.text+0x1088): undefined reference to `sceGuSync'
1>graphics.o: In function `loadImage':
1>graphics.c:(.text+0x113c): undefined reference to `png_create_read_struct'
1>graphics.c:(.text+0x115c): undefined reference to `png_set_error_fn'
1>graphics.c:(.text+0x1164): undefined reference to `png_create_info_struct'
1>graphics.c:(.text+0x1178): undefined reference to `png_init_io'
1>graphics.c:(.text+0x1184): undefined reference to `png_set_sig_bytes'
1>graphics.c:(.text+0x1190): undefined reference to `png_read_info'
1>graphics.c:(.text+0x11b8): undefined reference to `png_get_IHDR'
1>graphics.c:(.text+0x1244): undefined reference to `png_set_strip_16'
1>graphics.c:(.text+0x124c): undefined reference to `png_set_packing'
1>graphics.c:(.text+0x1280): undefined reference to `png_get_valid'
1>graphics.c:(.text+0x1298): undefined reference to `png_set_filler'
1>graphics.c:(.text+0x12ec): undefined reference to `png_read_row'
1>graphics.c:(.text+0x1360): undefined reference to `png_read_end'
1>graphics.c:(.text+0x1370): undefined reference to `png_destroy_read_struct'
1>graphics.c:(.text+0x13a4): undefined reference to `png_destroy_read_struct'
1>graphics.c:(.text+0x13b4): undefined reference to `png_set_palette_to_rgb'
1>graphics.c:(.text+0x13c4): undefined reference to `png_set_tRNS_to_alpha'
1>graphics.c:(.text+0x13d4): undefined reference to `png_set_gray_1_2_4_to_8'
1>graphics.c:(.text+0x140c): undefined reference to `png_destroy_read_struct'
1>graphics.c:(.text+0x1460): undefined reference to `png_destroy_read_struct'


Was ist daran falsch bzw. was ist in der Graphics.c falsch.
Habe sowohl die graphics.h als auch die graphics.c von PSP-Programming Lesson 4.

MfG
Schaschlix

27.07.2010 10:27
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
seimen.te
Profi
****


Beiträge: 474
Gruppe: User
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 124
Beitrag: #2
RE: [PSP C] Graphics Problem

Das ist doch kein programm. Da fehlt die main (void) funktion, das ist dieser Code Block den man vor jedes PSP Hombrew setzen muss damit es läuft


Haltet mal "S" gedrückt und klickt gleichzeitig auf folgenden Link: Klick
27.07.2010 10:38
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Schaschlix
Profi
****


Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009

Status: Offline
Danke erhalten: 71
Beitrag: #3
xPSP  RE: [PSP C] Graphics Problem

Zitat:
int main(int argc, char *argv[])


...

27.07.2010 10:43
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
~ferra~
Experte
****


Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 461
Beitrag: #4
xPSP  RE: [PSP C] Graphics Problem

Probier es zum Testen mal damit. Ist der Fehler immernoch da, weißt du zu 100 % das es an der grapis.h liegt.

Code:
#include &lt;pspkernel.h&gt;
#include &lt;pspdebug.h&gt;
#include &lt;framebuffer.h&gt;
#include &lt;pspgu.h&gt;
#include &lt;png.h&gt;
#include &lt;stdio.h&gt;
#include &lt;pspdisplay.h&gt;
#include &lt;pspctrl.h&gt;
#include "graphics.h"


#define printf pspDebugScreenPrintf
#define RGB(r, g, b) ((r)|((g)&lt;&lt;8)|((b)&lt;&lt;16))

int i = 5;

/* Define the module info section */
PSP_MODULE_INFO("Unzipper", 0, 1, 1);

/* Define the main thread's attribute value (optional) */
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common)
{
    sceKernelExitGame();
    return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp)
{
    int cbid;

    cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
    sceKernelRegisterExitCallback(cbid);

    sceKernelSleepThreadCB();

    return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void)
{
    int thid = 0;

    thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);

if(thid &gt;= 0)
{
    sceKernelStartThread(thid, 0, 0);
}
return thid;
}

int main() {
while (i == 5)
{
    pspDebugScreenInit();
    SetupCallbacks();
    initGraphics();

    pspDebugScreenSetTextColor(RGB(135,55,15));

    pspDebugScreenPrintf("Hello World\n");

    sceKernelSleepThread();
}
    return 0;
}


~~> Ist ein im Marktplatz verifizierter Verkäufer. <~~
Nulleinspeisung - openDTU Hoymiles SolarZero
27.07.2010 10:52
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Schaschlix
Profi
****


Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009

Status: Offline
Danke erhalten: 71
Beitrag: #5
xPSP  RE: [PSP C] Graphics Problem

Der Fehler kommt immer noch, aber es kann eigentlich nicht an der graphics.h / graphics.c liegen, weil sie im Verzeichniss der main.c liegen und mit den Dateien bei den Tuts von PSP-Programming geabreitet wird.

27.07.2010 10:58
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
~ferra~
Experte
****


Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 461
Beitrag: #6
xPSP  RE: [PSP C] Graphics Problem

Schaschlix :
Der Fehler kommt immer noch, aber es kann eigentlich nicht an der graphics.h / graphics.c liegen, weil sie im Verzeichniss der main.c liegen und mit den Dateien bei den Tuts von PSP-Programming geabreitet wird.


Hast du sie auch in der Makefile drin?

MfG ferra


~~> Ist ein im Marktplatz verifizierter Verkäufer. <~~
Nulleinspeisung - openDTU Hoymiles SolarZero

Dieser Beitrag wurde zuletzt bearbeitet: 27.07.2010 11:08 von ~ferra~.

27.07.2010 11:08
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Arcanum
Halbprofi
***


Beiträge: 170
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 48
Beitrag: #7
RE: [PSP C] Graphics Problem

Bitte gewöht euch mal an, Spoiler zu benutzen oder dienste wie http://code.mastercoding.net/. Dann ist das ganze viel übersichtlicher.

Also die graphics.h und framebuffer.h müssen bei dir in dem Verzeichnis liegen, wo auch die main.c(pp) liegt.
Dann musst du in dem Makefile folgendes bei "OBJS" (2. Reihe) hinschreiben:

graphics.o framebuffer.o


Dann müsste es gehen.




PSP 1004 - Datecode 6B - CFW 5.00 M33-6
PSP 3004 - Datecode 8D - OFW 6.20
27.07.2010 11:10
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Schaschlix
Profi
****


Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009

Status: Offline
Danke erhalten: 71
Beitrag: #8
xPSP  RE: [PSP C] Graphics Problem

Das hier ist meine Makefile:

Code:
TARGET = Test
OBJS = main.o graphics.o framebuffer.o

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Test

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

27.07.2010 11:13
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Arcanum
Halbprofi
***


Beiträge: 170
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 48
Beitrag: #9
RE: [PSP C] Graphics Problem

Schreib mal folgendes unter ASFLAGS:

LIBS = -lpspgum -lpspgu -lpsprtc -lm




PSP 1004 - Datecode 6B - CFW 5.00 M33-6
PSP 3004 - Datecode 8D - OFW 6.20
27.07.2010 11:49
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
Namenloser (Jul-27-2010)
HacKmaN
Ex-Developer
*


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

Status: Offline
Danke erhalten: 3319
Beitrag: #10
xPSP  RE: [PSP C] Graphics Problem

seimen.te :
Das ist doch kein programm. Da fehlt die main (void) funktion, das ist dieser Code Block den man vor jedes PSP Hombrew setzen muss damit es läuft


Äh... die Main Funktion darf Parameter haben. Main(void) funktioniert zwar, ist aber eigentlich sogar falsch, die sceLoadExec Funktionen übergeben auf der PSP der main Funktion als erstes Argument einen Zeiger auf einen String mit dem Pfad des Ordners in dem die EBOOT ist.

27.07.2010 12:05
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Schaschlix
Profi
****


Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009

Status: Offline
Danke erhalten: 71
Beitrag: #11
xPSP  RE: [PSP C] Graphics Problem

Das Problem besteht immer noch, auch wenn ich die Zeile zur Makefile ergänze.

Edit:

Problem gelöst.
Ich hatte die nötigen Libs nicht installiert...

Dieser Beitrag wurde zuletzt bearbeitet: 27.07.2010 16:00 von Schaschlix.

27.07.2010 15:32
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
xGames "graphics.h" from back in the days MiDKNiTE 1 9.715 01.12.2016 23:01
Letzter Beitrag: taipangr
xPSP C :: Graphics.h/.c - MapSystem? ~Hook~ 21 5.040 22.04.2012 19:53
Letzter Beitrag: SIM sk

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




» zum Seitenanfang