luaで共有ライブラリを作成する方法
2010 年 5 月 24 日
Luaバイナリをソースファイルからコンパイルして作成するとき、
標準では静的ライブラリが生成されます。
通常Luaを組み込み用途で使用するときは静的ライブラリで十分なのですが、
時には共有ライブラリが欲しくなるので、作成してみます。
(lua5.1を想定しています)
src/Makefileに以下を追加する。
LUA_O=lua.oと書かれた行の下に、以下の行を挿入する。
LUA_SO=liblua5.1.so
次の行の最後に、$(LUA_SO)を追記する。
ALL_T=$(LUA_A) $(LUA_T) $(LUAC_T)
↓
ALL_T=$(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
clean:と書かれた行の前に、以下の2行を挿入する。
(2行の前後には1行の空行があるようにする)
$(LUA_SO): $(CORE_O) $(LIB_O)$(CC) -o $@ -shared $?保存する。
次にMakefileを下記のように編集する。
TO_LIB= liblua.aとなっている行の最後に liblua5.1.soを追記する。
↓
TO_LIB=liblua.a liblua5.1.so
これで、makeするとliblua5.1.soが生成されます。