Android-ndkでluaを使ってみた

最近、luaに興味が出てきた。なんでも、iPhoneやandroidのアプリ開発に利用できるそうな。lua自体はとても軽量なスクリプト言語であり、C言語から相互に利用できるようだ。Cといえば、NDKである。ちょっと試してみた。

まず、androidの開発環境とndkのインストールは事前に行なっておく。

approot/jni/luaの本体を保存した。利用したluaは5.2.2だ。解凍してできたフォルダー内のsrcディレクトリーをコピーしてluaに名前を変えた。

月に、Android.mkとApplication.mkファイルをapproot/jni以下に作成。内容は以下の通り

これで、approotでビルドを行う。ndk-buildコマンドを利用するので、事前にパス等の設定は行なっておく。

おや、llex.cでエラーが表示された。どうやら、getlocaleedepoint()関数でエラーがでているようだ。調査したら、これは関数ではなくマクロで、decimal_pointの定義が足りないようだ。さらに調査を進めると、どうやらこれは小数点の処理のようで、殆ど「.」が入っているようなので、強制的に置き換えてみた。結果、以下のように修正した。修正箇所は202行目付近だ。

うん。エラーなく、コンパイルができるようになった。approot/lib以下にsoファイルができていれば大成功だ。

ではまた。