公式ページのダウンロードからソースを落としてきてビルドするだけ。楽。
lua.c/luac.cはバイナリとして配布されてる実行ファイルのmainが入っている。当然、これを含めてmakeすると重複定義エラーになる。
今回は動作確認だけなので簡単な処理だけ作ってみた。スタンドアロン動作だし。
ちゃんと使うならちゃんと使い方を調べにゃ。でも結構簡単にいろいろできそう。
STM32F4で動くLuaVMとかやりたいな。HALをもうちょっと抽象化してLuaで実行できるようにしたりして。
追記:2017/09/09
l_hoge関数の戻り値が1だけど、これは0にしなきゃいけないみたい。
C関数の戻り値は、関数の戻り値の数を渡す必要がある。今回は戻り値がないので0を返す。
Luaは関数呼び出しの際にスタックが1個作られ、引数がスタックに積まれる。また戻り値もスタックに積まれる。引数が3個、戻り値が2個の場合、スタックは5段となり、Cの戻り値は2になる。この際、print(C関数())のようにするとスタックの上2個が表示される。Cの戻り値に6を指定すると、戻り値の2個、引数の3個、そして不定値の1個の変数が表示された。この不定値は何らかの定数かもしれないが、調べてない。
0 件のコメント:
コメントを投稿