PSPへ移植の時エラーが出てしまいます。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
とく

PSPへ移植の時エラーが出てしまいます。

#1

投稿記事 by とく » 15年前

龍神録をPSPへ移植しようと思い、ソースを書いてコンパイルしようとしたのですが、エラーが出てしまいます。

環境
OS:Windows7
IDE:Visual C++ 2008
SDK:Minimalist PSPSDK for Windows

Makefile
TARGET = TestProject
OBJS = main.o key.o
INCDIR = C:\pspsdk\psp\include
INCDIR += C:\Projects\PSP\PSP\include
CFLAGS = -O2 -G0
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

LIBDIR =
LDFLAGS =

LIBS = -lm -lpspdebug
LIBS += dxlibp.a -lpspgu -lpng -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec -lpsputility -lpspjpeg

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Title

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


all:
    @rm -f *.o
    @rm -f *.elf
    @rm -f *.BAK
    @rm -f *.SFO

main.cpp
#include <GV.h>
#include <pspkernel.h>
#include <psppower.h>
#include <dxlibp.h>
#define GLOBAL_INSTANCE

PSP_MODULE_INFO("TEST", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER);

//現在のキー入力処理を行う
extern int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
extern int CheckStateKey(unsigned char Handle);

//ループで必ず行う3大処理
int ProcessLoop(){
    if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す
    if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す
    GetHitKeyStateAll_2();//現在のキー入力処理を行う
    return 0;
}

int main(void)
{
    if(DxLib_Init() == -1 || SetDrawScreen(DX_SCREEN_BACK)!=0)
        return -1;//初期化と裏画面化
    
    while(ProcessLoop()==0){//メインループ

        if(CheckStateKey(DXP_INPUT_SELECT)==1)
            break;//SELECTが入力されたらブレイク
       
        ScreenFlip();//裏画面反映
    }

    DxLib_End();//DXライブラリ終了処理

    sceKernelExitGame();

    return 0;
}


key.cpp
#include <GV.h>

unsigned int stateKey[256];

int GetHitKeyStateAll_2(){
    char GetHitKeyStateAll_Key[256];
    GetHitKeyStateAll( GetHitKeyStateAll_Key );
    for(int i=0;i<256;i++){
        if(GetHitKeyStateAll_Key==1)
            stateKey++;
        else                       
            stateKey=0;
    }
    return 0;
}

int CheckStateKey(unsigned char Handle){
        return stateKey[Handle];
}


ファイルの構成

プログラムのソースすべて
dxlibp.a
dxlibp.h
makefile
include
|_自作ヘッダーファイルすべて
dat(画像やらいろいろ)

エラーメッセージ

1>main.cpp: In function 'int main()':
1>main.cpp:29: error: 'DX_SCREEN_BACK' was not declared in this scope
1>make: *** [main.o] Error 1
1>Project : error PRJ0019: ツールはエラー コードを返しました : "メイクファイル プロジェクト動作を実行しています。"

なぜエラーが出てしまうのかわかりません。
dxlibp.hがインクルードされてないとかでしょうか?
教えてください。

pooka

Re:PSPへ移植の時エラーが出てしまいます。

#2

投稿記事 by pooka » 15年前

http://dxlibp.sourceforge.jp/cgi-bin/pa ... view&no=53
こちらを見るとDX_SCREEN_BACKをDXP_SCREEN_BACKに変えればよさそうです。

ちょっとdxlibp.hを見てみましたが、v0.5.5ではDX_SCREEN_BACKとなっているようなので、
ご使用のバージョンが古いのかもしれませんね。

とく

Re:PSPへ移植の時エラーが出てしまいます。

#3

投稿記事 by とく » 15年前

たびたびすいません。

DXライブラリPortableを新しくしたら解消されたのですが、別のエラーが出てきてしまいます。

1>psp-gcc -IC:\pspsdk\psp\include -IC:\Projects\PSP\PSP\include -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -D_PSP_FW_VERSION=150 -L. -LC:/pspsdk/psp/sdk/lib main.o key.o -lm -lpspdebug dxlibp.a -lpspgu -lpng -lz -lm -lpsprtc -lpspaudio -lpspaudiocodec -lpsputility -lpspjpeg -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o TestProject.elf
1>dxlibp.a(graphics.o): In function `dxpGraphicsInit':
1>graphics.c:(.text+0xc50): undefined reference to `vgetMemorySize'
1>graphics.c:(.text+0xcbc): undefined reference to `vgetMemorySize'
1>graphics.c:(.text+0xe1c): undefined reference to `vGuPointer'
1>graphics.c:(.text+0xe34): undefined reference to `vGuPointer'
1>graphics.c:(.text+0xf68): undefined reference to `vfree'
1>graphics.c:(.text+0xf70): undefined reference to `vfree'
1>graphics.c:(.text+0xf78): undefined reference to `vfree'
1>graphics.c:(.text+0xfe8): undefined reference to `vgetMemorySize'
1>dxlibp.a(graphics.o): In function `dxpGraphicsEnd':
1>graphics.c:(.text+0x1054): undefined reference to `vfree'
1>graphics.c:(.text+0x105c): undefined reference to `vfree'
1>graphics.c:(.text+0x1064): undefined reference to `vfree'
1>graphics.c:(.text+0x106c): undefined reference to `vfree'
1>dxlibp.a(texutils.o): In function `MoveGraphToDDR':
1>texutils.c:(.text+0x568): undefined reference to `vCPUPointer'
1>texutils.c:(.text+0x580): undefined reference to `vfree'
1>dxlibp.a(texutils.o): In function `dxpGraphicsReleseTexture':
1>texutils.c:(.text+0xafc): undefined reference to `vfree'
1>dxlibp.a(texutils.o): In function `dxpGraphicsReleseGraphicHandle':
1>texutils.c:(.text+0xd18): undefined reference to `vfree'
1>dxlibp.a(fileio.o): In function `dxpPowerCallbackThread':
1>fileio.c:(.text+0x264): undefined reference to `scePowerRegisterCallback'
1>collect2: ld 、マ・ケ・ニ。シ・ソ・ケ 1 、ヌスェホサ、キ、゛、キ、ソ
1>make: *** [TestProject.elf] Error 1



これはなんなのでしょうか。
さっぱりわかりません。
本当にすいませんが教えてもらえるとうれしいです。

pooka

Re:PSPへ移植の時エラーが出てしまいます。

#4

投稿記事 by pooka » 15年前

dxlibp_src_v0.5.5.rarに付属のreadme.txtに
【0.4.x以前からの更新注意!】とありますが、読まれましたか?

とく

Re:PSPへ移植の時エラーが出てしまいます。

#5

投稿記事 by とく » 15年前

解決できました!!
本当にありがとうございました。
また、お世話になるかもしれないので、その時は、よろしくお願いします。

閉鎖

“C言語何でも質問掲示板” へ戻る