如何解决LuaJIT 未定义引用
我正在尝试针对 liblluajit-5.1
编译和链接以下 C 程序(我在 Linux 上安装了 LuaJIT 版本 2.0.5
):
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
int main(int argc,char **argv)
{
int status;
lua_State *L = luaL_newstate();
luaL_openlibs(L);
lua_getglobal(L,"require");
lua_pushliteral(L,"mod");
lua_pcall(L,1,0);
// ...
return 0;
}
由于对 lua_getglobal
和 lua_pcallk
的未定义引用而失败。为什么? LuaJIT 是否仅实现了 C API 的一个子集,而我必须另外链接 liblua
?
我正在编译和链接:
gcc -Wl,-E -o prog prog.c -lluajit-5.1 -lm -ldl
解决方法
问题很简单:我必须包含
#include "luajit-2.0/lua.h"
#include "luajit-2.0/lauxlib.h"
#include "luajit-2.0/lualib.h"
而不是标准的 Lua 标头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。