Minimalist PSPSDK でスクリプト言語 Lua を使う
Minimalist PSPSDKをインストールすると
「Minimalist PSPSDKのインストールディレクトリ\psp\sample」に
script.luaというLuaスクリプトを使うサンプルプログラムがある。
Luaは、
ラグナロクオンラインなどのゲームでも使われているスクリプト言語で
C言語との親和性が高いものとして知られている。
このサンプルを動かすのに
SourceForge.JP のココにあるlua-5.1-pspdevpak.exeを
ダウンロードして設定したのだが
上述のサンプルプログラムをmakeすると
f:/pspsdk/0.11.2r3/bin/../lib/gcc/psp/4.3.5/../../../../psp/lib\liblualib.a(lbas
elib.o): In function `luaB_tonumber':lbaselib.c:(.text+0xbc8): undefined reference to `__ctype_ptr'
といったリンクエラーが出てしまう。
リンクしているライブラリ「liblualib.a」にある
ソースが「lbaselib.c」の関数名「luaB_tonumber」で使っている
「__ctype_ptr」が宣言されていない
という意味だ。
残念ながら、lua-5.1-pspdevpak.exeには
ライブラリとヘッダファイルしか存在せず
直しようが無い。
と思っていたのだが
「Source code for Lua 5.1」に
C言語のソース一式があるのを発見!
各ソースのリンク先で表示されるソースを1つ1つC言語のソースとして保存し
PSPSDKのmakeしてみた。
いろいろやってみたところ、どうやら
・ヘッダファイルは、まとめて一箇所にしておく
Incluedes、Coreにあるヘッダファイルを同じフォルダにする
(分けても良いのだが、その場合、
LibrariesのソースがCoreのヘッダを見れるようにする必要がある)
・Coreというグループになっているソースを
ライブラリliblua.aとしてmake
・Librariesというグループになっているソースを
ライブラリliblualib.aとしてmake
とすればOKのようだ。
これで最初のsampleフォルダに
liblua.a、liblualib.aをコピーしてmakeするとリンクまで通る。
EBOOT.PBPをPSPにコピーして動かすと
ちゃんとC言語プログラムとLuaスクリプトが動いている。
LuaとC言語の連携とかは
「Lua - 自分用のメモとか」を見るとなんとなく雰囲気はつかめる。
サンプルでは、
LuaスクリプトファイルからC言語プログラムの関数を呼び出しており
スクリプト内で○ボタンと×ボタンが入力されたら
○ボタン押下時は「circle pressed」と画面表示され
×ボタン押下でスクリプトから抜けるようになっている。
ふむ、なかなか使えそうじゃないか。
| 【固定リンク】 | 【コメント (0)】 | 【トラックバック (0)】
このエントリーへのリンク
トラックバック
この記事へのトラックバックの一覧です: Minimalist PSPSDK でスクリプト言語 Lua を使う:
コメント
このブログの新着コメントをRSSリーダに登録する為のxml