LuaJIT undefined references

我正在尝试将以下 C 程序链接到 liblluajit-5.1 (我在 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, 0);

  // ...

  return 0;
}

因为对 lua_getgloballua_pcallk 的未定义引用,此失败。为什么?LuaJIT 是否只实现了 C API 的一部分,我还需要链接到 liblua

我正在使用以下编译和链接选项:

gcc -Wl,-E -o prog prog.c -lluajit-5.1 -lm -ldl
点赞
用户4858640
用户4858640

问题很简单:我必须包括以下内容

#include "luajit-2.0/lua.h"
#include "luajit-2.0/lauxlib.h"
#include "luajit-2.0/lualib.h"

而不是标准的Lua头文件。

2021-07-06 12:50:05