lua スクリプトから呼び出される C モジュールを作成しようとしています。私はdebian Linuxに取り組んでいます。私は mysql-proxy と lua 5.2 を使用しています。呼び出される関数の例をいくつか作成しました (チュートリアルからコピー)。
ローダーは次のように定義されます。
int luaopen_luacall(lua_State* l)
{
luaL_newlibtable(l, luacall);
luaL_setfuncs(l, luacall, 0);
return 1;
}
これを lua から呼び出すには、次のコードを使用します。
luacall = require("luacall")
local f = luacall.fun1()
このコマンドでコンパイルしました:
g++ -shared -Wl,-E,-soname,libluacall.so -o luacall.so luacall.c -fPIC -llua -ldl
スクリプトを実行しようとすると、require
コマンドで次のエラーが発生します。
error loading module 'luacall' from file '/usr/lib/mysql-proxy/lua/luacall.so':
/usr/lib/mysql-proxy/lua/luacall.so: undefined symbol: luaL_setfuncs
私は自分が間違っていることに本当に迷っています。