作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个从 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
我真的迷失在我做错了什么。
最佳答案
在构建 Lua 模块时永远不要使用 -llua
。 Lua 解释器本身已经与 liblua 链接,并在加载模块时满足这些符号。将您的模块与 liblua 链接会与解释器发生冲突。
关于c - 错误加载模块 undefined symbol : luaL_setfuncs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21307312/
我正在尝试创建一个从 lua 脚本调用的 C 模块。我正在研究 debian linux。我正在使用 mysql-proxy 和 lua 5.2。我已经创建(从教程中复制)了一些要调用的示例函数。 加
我是一名优秀的程序员,十分优秀!