|
Verfasser |
Nachricht |
Schaschlix
Profi
Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 71
|
[PSP C] Graphics Problem
Hallo Leute,
ich habe folgenden 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++:
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 |
|
|
|
seimen.te
Profi
Beiträge: 474
Gruppe: User
Registriert seit: Feb 2010
Status:
Offline
Danke erhalten: 124
|
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 |
|
|
|
Schaschlix
Profi
Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 71
|
RE: [PSP C] Graphics Problem
int main(int argc, char *argv[])
...
|
|
27.07.2010 10:43 |
|
|
|
~ferra~
Experte
Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 461
|
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.
#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))
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 >= 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;
}
|
|
27.07.2010 10:52 |
|
|
|
Schaschlix
Profi
Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 71
|
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 |
|
|
|
~ferra~
Experte
Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 461
|
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.
Hast du sie auch in der Makefile drin?
MfG ferra
Dieser Beitrag wurde zuletzt bearbeitet: 27.07.2010 11:08 von ~ferra~.
|
|
27.07.2010 11:08 |
|
|
|
Arcanum
Halbprofi
Beiträge: 170
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 48
|
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 |
|
|
|
Schaschlix
Profi
Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 71
|
RE: [PSP C] Graphics Problem
Das hier ist meine Makefile:
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 |
|
|
|
Arcanum
Halbprofi
Beiträge: 170
Gruppe: User
Registriert seit: Apr 2010
Status:
Offline
Danke erhalten: 48
|
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 |
|
Folgende User bedanken sich: |
|
HacKmaN
Ex-Developer
Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 3319
|
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
Ä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 |
|
|
|
Schaschlix
Profi
Beiträge: 366
Gruppe: User
Registriert seit: Nov 2009
Status:
Offline
Danke erhalten: 71
|
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 |
|
|
|