我找到了一个解决方案,需要编辑 Lua 源文件。
在lualib.h中添加
#define LUA_SQLLIBNAME "lsqlite3"
LUAMOD_API int (luaopen_lsqlite3)(lua_State *L);
之前
LUALIB_API void (luaL_openlibs) (lua_State *L);
在 linit.h 中将此 {LUA_SQLLIBNAME, luaopen_lsqlite3 } 添加到 loadedlibs 数组。你得到了
static const luaL_Reg loadedlibs[] = {
{"_G", luaopen_base},
{LUA_LOADLIBNAME, luaopen_package},
{LUA_COLIBNAME, luaopen_coroutine},
{LUA_TABLIBNAME, luaopen_table},
{LUA_IOLIBNAME, luaopen_io},
{LUA_OSLIBNAME, luaopen_os},
{LUA_STRLIBNAME, luaopen_string},
{LUA_BITLIBNAME, luaopen_bit32},
{LUA_MATHLIBNAME, luaopen_math},
{LUA_DBLIBNAME, luaopen_debug},
{LUA_SQLLIBNAME, luaopen_lsqlite3 },
{NULL, NULL}
};
现在,如果您调用 luaL_openlibs,在 Lua 中调用 local sqlite3 = require("lsqlite3") 后,SQLite 支持将出现在您的代码中