在使用Lua 5.1.5调用'require("lsqlite3")'时遇到了'SIGSEGV'错误。
我已经构建了lua 5.1.5和lsqlite3-0.8.1,并且它们在我的RedHat Linux上运行良好。然后我将它们移植到我的MIPS开发板上。lua和其他模块(例如luafilesystem、md5、cgilua和wsapi)都运行良好。但是lsqlite3无法正常工作。
当我在lua命令行中执行require("lsqlite3")时,它返回以下错误消息:
lua
Lua 5.1.5版权所有(C)1994-2012 Lua.org,PUC-Rio
require("lsqlite3") do_page_fault()#2:从00000000(epc == 00000000,ra == 2ac36144)向lua发送SIGSEGV以进行无效读取访问 分段错误
有人可以给我一些帮助来解决这个问题吗?谢谢!
在解决这个问题方面,我取得了一些进展,我使用gcc编译选项'-Wl,-E'重新构建了LUA,然后重新构建了lsqlite3。我在lua命令行中执行了require("lsqlite3"),并且没有打印任何消息。我继续运行一些其他数据库操作命令,并发现它们都成功执行了。看起来问题已经解决了,我应该对此感到非常高兴。
但是出现了另一个更奇怪的问题。
如果我将语句require("lsqlite3")放入文件中,然后以这种方式执行文件:
lua文件
它仍然打印错误消息,例如:
do_page_fault()#2:从2ada054c(epc == 2ada054c,ra == 2abdceac)向lua发送SIGSEGV以进行无效读取访问
如果我在文件中放置更多的数据库操作语句,然后通过lua运行此文件。Lua可以正确返回查询操作的结果并正确地将值插入表中,但始终打印上述错误消息。
如果我在lua命令行界面中逐个运行文件中的语句,它永远不会打印此错误消息。
它似乎在执行'require'函数时出现了错误消息。但是,如果我将require("lfs")放入文件中并通过lua运行这个文件,它永远不会打印错误消息。
我困惑的是lua命令行执行和lua脚本之间的区别是什么。
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
在
lsqlite3.c中有三个地方使用了sqlite_int64(从未直接使用long long)。当您构建 sqlite3 时,某种类型会被用于 64 位整数;通过包含sqlite3.h中的该类型的定义,lsqlite3 将使用相同的类型。