C言語からLuaのプログラムを呼び出す

http://dotinstall.com/lessons/basic_luaLuaのお勉強をしたので、C言語からLuaのプログラムを呼び出す方法も調べてみた。ということで、その結果をメモしておく。

まず、以下のコマンドを実行してCentOS 5.9にLuaをインストールした(インストールされたLuaのバージョンは5.1.4)。

$ sudo yum install lua

また、C言語からLuaのプログラムを呼び出すためには、Luaのヘッダファイル等が必要なので、更に以下のコマンドを実行。

$ sudo yum install devel

C言語から呼び出すLuaのプログラムとして以下を用意(hello.luaという名前で保存)。

print("Hello Lua!")

そして、上記のhello.luaを呼び出すC言語のプログラムは以下のようになる。

#include <stdio.h>

#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>

int main(void) {
    /* Luaのステートオブジェクトの作成 */
    lua_State *lua = luaL_newstate();

    /* Luaのライブラリの読込み */
    luaL_openlibs(lua);

    /* Luaのスクリプトの実行 */
    luaL_dofile(lua, "hello.lua");

    /* Luaのステートオブジェクトの開放 */
    lua_close(lua);

    return 0;
}

上記C言語のプログラムを以下のコマンドを実行してコンパイル

$ gcc test.c -llua

最後に以下のコマンドでC言語のプログラムを実行すると、無事Luaのプログラムを呼び出すことが出来た。

$ a.out
Hello Lua!


【参考サイト】