我不知道为什么我一直收到这个链接器错误,因为我链接了正确的库我确定它,除非我链接错误的但可能有人知道哪个是SonyOskGu功能的正确库。错误是:main.c :(。text + 0x134):未定义引用`SonyOskGu(char *,unsigned int,char *,char *,int)'。代码如下:
#include <psposk.h>
#include "atoi.h"
PSP_MODULE_INFO("OSLib Sample", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
#define printf oslPrintf
#define ERROR_SUCCESS 0
#define ERROR -1;
int main(void)
{
oslInit(0);
oslInitGfx(OSL_PF_8888, 0);
oslInitConsole();
oslInitAudio();
printf("Press Any Key To Start OSK In Order To Enter Path Of Audio File To Play Audio:");
char* path = (char*)malloc(255);
SonyOskGu(path,0xff918f8c,0,0,100);
printf("The path is");
OSL_SOUND* sound = oslLoadSoundFile(path, OSL_FMT_NONE);
if (sound == NULL){
oslAssert(sound == NULL);
oslEndGfx();
oslQuit();
return ERROR;
}
else
{
printf("Press X To Play Or Press O To Stop!");
int key = oslWaitKey();
if (key == OSL_KEY_CROSS)
{
oslPlaySound(sound, 0);
}
else if (key == OSL_KEY_CIRCLE)
{
oslStopSound(sound);
}
}
oslEndGfx();
oslQuit();
return ERROR_SUCCESS;
}
makefile位于以下位置:
TARGET = test
OBJS = main.o
INCDIR =
CFLAGS = -G4 -Wall -O2
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =
LDFLAGS =
STDLIBS= -losl -lpng -lz \
-lpspsdk -lpspctrl -lpspumd -lpsprtc -lpsppower -lpspgu -lpspaudiolib -lpspaudio -lm -lpsposk -lpspgum -lpspgu -lpng -lz
LIBS=$(STDLIBS)$(YOURLIBS)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = PSP Audio Player
PSP_EBOOT_ICON = ICON0.png
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak