c - LuaJIT 未定义的引用
问题描述
我正在尝试编译并链接以下 C 程序liblluajit-5.1
(我2.0.5
在 Linux 上安装了 LuaJIT 版本):
#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, 0);
// ...
return 0;
}
由于未定义对lua_getglobal
and的引用,此操作失败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 头文件。
推荐阅读
- vue.js - 将 Vue 组件加载为简码
- django - 一个 Django 应用程序/模型到多个数据库
- javascript - 如何将键值对添加到处于功能组件状态的对象中
- python - 如何使用 Python 和 pexpect 在多个会话中运行 linux 可执行文件
- r - 使用 R 中的正参数输入优化函数
- xcode - 当文件位于多个文件夹中时,如何移动 XCode 项目?
- c++ - 为什么在此示例中 C++ 名称查找似乎不一致?
- amazon-web-services - AWS Glue Crawler 无需 Glue 作业即可将所有数据发送到 Glue Catalog 和 Athena
- angularjs - ChartistJS 时间显示不正确
- javascript - 与 html 同时创建的事件侦听器未触发