初学lua.从http://lua-users.org/wiki/CallingLuaFromCpp上下载了一个lua嵌入C++的代码.编译并运行.发现有错误:
PANIC: unprotected error in call to Lua API (no calling environment)
int main (int argc, char *argv[])
{
lua_State *L = lua_open();
luaopen_base(L);
luaopen_table(L);
luaopen_io(L);//运行到此处是报错
luaopen_string(L);
luaopen_math(L);
luaopen_debug(L);
查阅网上资料后,发现是lua版本问题:我使用的lua为Lua 5.1.3.而示例所使用的lua为5.0.根据网络上的资料将初始化代码修改为如下内容,则问题得以解决:
int main (int argc, char *argv[])
{
lua_State *L = lua_open();
luaL_openlibs(L);
...
如下是我参考的网页http://lists.luaforge.net/pipermail/iup-users/2007-December/000183.html
http://lua-users.org/ 是一个学习lua的非常好的网站,有空一定要多去看看.