1、修改linit.c,添加
#define LUA_EXTLIBSNAME "luaextlibs"
int luaopen_ext(lua_State *L)
{
if(luaL_dofile(L, "/root/workspace/source/example/luadev/scripts/luaextlibs.lua"))
luaG_runerror(L, "error %s\n",lua_tostring(L,-1));
return 1;
}
2、再static const luaL_Reg loadedlibs[] 中添加
{LUA_EXTLIBSNAME, luaopen_ext},
3、书写luaextlibs.lua
#!/usr/local/bin/lua
luaextfuncs=require("luadev")
--深度拷贝Table
function DeepCopy(obj)
local InTable = {};
local function Func(obj)
if type(obj) ~= "table" then --判断表中是否有表
return obj;
end
local NewTable = {}; --定义一个新表
InTable[obj] = NewTable; --若表中有表,则先把表给InTable,再用NewTable去接收内嵌的表
for k,v in pairs(obj) do --把旧表的key和Value赋给新表