C言語からLuaのプログラムを呼び出す
http://dotinstall.com/lessons/basic_luaでLuaのお勉強をしたので、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!
【参考サイト】