将Lua嵌入C++

我一直在尝试在 C++ 应用程序中嵌入 Lua,但编译器报错说缺少 "lua_open" 函数。我使用的是 Lua 5.2。

我找到了很多文章声称 lua_open() 函数在第五版中被替换了,但没有一个文章提到是用什么来替换。

这是我正在尝试编译的代码:

extern "C" {
#include "../lua/lua.h"
#include "../lua/lualib.h"
#include "../lua/lauxlib.h"
}

int main()
{
    int s=0;

    lua_State *L = lua_open();
    // 加载库
    luaL_openlibs(L);
    luaL_dofile(L,"example.lua");
    printf("\n完成!\n");
    lua_close(L);

    return 0;
}

原文链接 https://stackoverflow.com/questions/8552560

点赞
stackoverflow用户841108
stackoverflow用户841108

事实上,在lua 5.2参考手册中没有提到lua_open函数。

可以使用lua_newstate来构建lua_State,也可以通过lauxlib.h中的luaL_newstate创建。

更快的获取答案的方法是查看Lua 5.2源代码(我刚刚做到了)。

2011-12-18 15:11:29