VC++によるprx作成のmakefile

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

VC++によるprx作成のmakefile

#1

投稿記事 by popo » 14年前

最近PSPのプラグインを作ることをはじめたのですが、一応コードはできました。
しかし、
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: コマンド "make" はコード 2 で終了しました。
と表示され、ビルドに失敗します。
どうやらmakefileを読み込めていないようで配置を正したり、英小文字でmakefileを入力してみても
読み込めずにこのエラーがでてきます。
makefileの中身が間違っているのでしょうか?
makefileはこのようになっています。

TARGET = test
OBJS = main.o

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

BUILD_PRX = 1

LIBDIR =
LDFLAGS =

LIBS =-lpspkernel -lc -lpspctrl -lpspuser -lpsppower


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

COFE
記事: 97
登録日時: 14年前

Re: VC++によるprx作成のmakefile

#2

投稿記事 by COFE » 14年前

PSPSDKは既にインストールされていますか?
一度コマンドラインからmakeしてみてください

それとエラーの内容全部貼っていただけると早く原因にたどり着けます

popo

Re: VC++によるprx作成のmakefile

#3

投稿記事 by popo » 14年前

PSPSDKはもちろんインストールしてあります。
エラー内容がたりなかったことはすいません。
1>------ ビルド開始: プロジェクト: VSHqpc, 構成: Debug Win32 ------
1> main.cpp: In function 'int main_thread(SceSize, void*)':
1> main.cpp:19: error: expected ',' or '...' before ':' token
1> psp-g++ -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -fno-builtin-printf -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -fno-builtin-printf -fno-exceptions -fno-rtti -c -o main.o main.cpp
1> main.cpp: In function 'int module_start(SceSize, void*)':
1> main.cpp:31: warning: suggest parentheses around assignment used as truth value
1> make: *** [main.o] Error 1
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: コマンド "make" はコード 2 で終了しました。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

恐らくmakeはコード2で(ry 意外にも;等が抜けていると思われるエラーもあると思いますが
どうでしょうか?

COFE
記事: 97
登録日時: 14年前

Re: VC++によるprx作成のmakefile

#4

投稿記事 by COFE » 14年前

>main.cpp:19: error: expected ',' or '...' before ':' token
どっかにセミコロン忘れかカッコ忘れか無いですか?
出来ればmain.cもあげていただきたいです

追記:
すいません、セミコロン忘れについてはわかってらっしゃるんですね
そこを訂正すれば多分通ると思うんですが……

popo

Re: VC++によるprx作成のmakefile

#5

投稿記事 by popo » 14年前

わかりました。プログラミングを始めたばかりで恥ずかしいですが

コード:

#include <pspkernel.h>
#include <pspctrl.h>

PSP_MODULE_INFO("test", 0x1000, 1, 0);

int main_thread(SceSize args, void *argp)
{
 SceCtrlData pad;

 while(1)
 {
  sceKernelDelayThread(50000);

  sceCtrlPeekBufferPositive(&pad, 1);

  if(pad.Buttons & PSP_CTRL_RTRIGGER & PSP_CTRL_LTRIGGER &  PSP_CTRL_SELECT &  PSP_CTRL_START &  PSP_CTRL_UP);
  {
   int copyFile(char* ms0:/vsh/vsh.txt, char* ms0:/seplugin/vsh.txt);
  }
 }

return 0;
}


int module_start(SceSize args, void *argp)
{
   int thid = sceKernelCreateThread("mainThread", main_thread, 32, 0x800, 0, NULL);

   if(thid = 0)
      sceKernelStartThread(thid, args, argp);


   return 0;
}


int module_stop(SceSize args, void *argp)
{
   return 0;
}
このようになっています。

COFE
記事: 97
登録日時: 14年前

Re: VC++によるprx作成のmakefile

#6

投稿記事 by COFE » 14年前

makeの通らない原因は
 16行目のセミコロンが不要
 18行目の書き方がおかしい

というのが原因でしょう

コード:

if(pad.Buttons & PSP_CTRL_RTRIGGER & PSP_CTRL_LTRIGGER &  PSP_CTRL_SELECT &  PSP_CTRL_START &  PSP_CTRL_UP){
      copyFile("ms0:/vsh/vsh.txt" , "ms0:/seplugin/vsh.txt");
}
そこをこのように直したらmake出来ました

あと何と言うか18行目の書き方があきらかにおかしいです
これは関数の宣言でなく呼び出しですよね?更に引数の指定も変数宣言の形なのに文字列をいれているしすごく変です
変数、関数などもっとC言語の基本的なことの理解を深めることをお勧めしますよ


あとコレってプラグインである必要あるんですかね?EBOOT.PBPで十分いいと思うのですが

popo

Re: VC++によるprx作成のmakefile

#7

投稿記事 by popo » 14年前

何度もすみません。
そのとうりに書き換えたのですが、
1>------ ビルド開始: プロジェクト: VSHqpc, 構成: Debug Win32 ------
1> main.cpp:3:10: warning: missing terminating > character
1> main.cpp:3:10: error: #include expects "FILENAME" or <FILENAME>
1> main.cpp: In function 'int main_thread(SceSize, void*)':
1> main.cpp:18: error: 'copyfile' was not declared in this scope
1> main.cpp: In function 'int module_start(SceSize, void*)':
1> main.cpp:30: warning: suggest parentheses around assignment used as truth value
1> psp-g++ -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -fno-builtin-printf -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -fno-builtin-printf -fno-exceptions -fno-rtti -c -o main.o main.cpp
1> make: *** [main.o] Error 1
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: コマンド "make" はコード 2 で終了しました。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
と1> main.cpp:18: error: 'copyfile' was not declared in this scopeというエラーが発生してしまいます。
どうやら該当する関数や変数が有効範囲内で見つからない場合に発生するエラーのようですが、どのようにして直せばいいのでしょうか?
PSPSDKはしっかりインストールしてあります。
ちなみにこれはPSPのvsh.txtをすばやく編集できないかと思い作ってみたコードです。

COFE
記事: 97
登録日時: 14年前

Re: VC++によるprx作成のmakefile

#8

投稿記事 by COFE » 14年前

copyfile?copyFileの間違いではありませんか?
こちらの環境でコンパイルできたソースを貼っておきます

コード:

#include <pspkernel.h>
#include <pspctrl.h>
 
PSP_MODULE_INFO("test", 0x1000, 1, 0);
 
int main_thread(SceSize args, void *argp)
{
 SceCtrlData pad;
 
 while(1)
 {
  sceKernelDelayThread(50000);
 
  sceCtrlPeekBufferPositive(&pad, 1);
 
  if(pad.Buttons & PSP_CTRL_RTRIGGER & PSP_CTRL_LTRIGGER &  PSP_CTRL_SELECT &  PSP_CTRL_START &  PSP_CTRL_UP)
  {
   copyFile("ms0:/vsh/vsh.txt", "ms0:/seplugin/vsh.txt");
  }
 }
 
return 0;
}
 
 
int module_start(SceSize args, void *argp)
{
   int thid = sceKernelCreateThread("mainThread", main_thread, 32, 0x800, 0, NULL);
 
   if(thid = 0)
      sceKernelStartThread(thid, args, argp);
 
 
   return 0;
}
 
 
int module_stop(SceSize args, void *argp)
{
   return 0;
}
使用により10時半まで返信できませんがご了承ください

popo

Re: VC++によるprx作成のmakefile

#9

投稿記事 by popo » 14年前

どうやらそれをコピーしても無理だったよです。おそらく環境がまだ完全に整っていないようでした。
時間があればビルドしたprxファイルをアップしてくれればありがたいです。

popo

Re: VC++によるprx作成のmakefile

#10

投稿記事 by popo » 14年前

popo さんが書きました:どうやらそれをコピーしても無理だったよです。おそらく環境がまだ完全に整っていないようでした。
時間があればビルドしたprxファイルをアップしてくれればありがたいです。
言い忘れてすいません。C++を学んで2週間ほどの超初心者をここまで親切にアドバイスしてくださって
本当にありがとうございました。

COFE
記事: 97
登録日時: 14年前

Re: VC++によるprx作成のmakefile

#11

投稿記事 by COFE » 14年前

いえいえ、逆に2週間でここまで出来るのは素晴らしいことだと思いますよ

一応コレがmakeして出力されたファイルです
ただcopyFileという関数が標準ライブラリで提供されているものなのかよく分からないので実行するのは危険が伴うかもしれません
特権モードで実行するように設定されていますので、使用は自己責任でよろしくお願いします
添付ファイル
test.txt
拡張子をprxに変えてお使いください
(1.38 KiB) ダウンロード数: 141 回

popo

Re: VC++によるprx作成のmakefile

#12

投稿記事 by popo » 14年前

ありがとうございます。またお世話になることがあるかもしれませんがそのときもよろしくお願いします。

閉鎖

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