将预编译的 Lua 5.2 项目添加一个 SQL 扩展。

我尝试了至少6个不同的SQL Lua扩展,它们都似乎兼容最新的Lua 5.1版本。然而,在我当前使用Lua 5.2的项目中,我没有成功将它们中的任何一个实现,最好的情况下就是程序崩溃或出现“尝试调用全局变量'module'(一个空值)”的错误。我不是这个项目的初始所有者,所以我尽量避免对其源代码进行更改(尽管最近我确实这样做了)。

通常,这些崩溃是由项目本身的操作方式,项目实现Lua的方式(作为静态库),Lua尝试实现其扩展的方式,扩展实现其依赖项的方式,版本冲突或某种疯狂的组合引起的。在这种情况下,基本上不可能调试静默崩溃,因为罪恶的源头可能是任何东西。

正如答案在这个问题中所述,我甚至尝试了支持_module_函数(大多数Lua SQL扩展使用它,但在5.2中已被弃用),但程序仍然会崩溃或抱怨一个看起来无穷无尽的缺少依赖项。花费几个小时跟踪(看起来)所有它会抱怨的依赖项后,它仍然会崩溃。

将项目的源代码更改为使用Lua 5.1源代码似乎会破坏项目的功能,导致各种关于缺少5.2相关函数的编译器错误。将MySQL C / C ++连接器链接到项目会导致相当模糊的运行时错误,似乎与项目实现Lua 5.2的方式冲突。

有没有任何适用于32位Windows机器上的Lua 5.2的sqlite / MySQL扩展?最好的情况是带有Lua源代码/ ffi绑定的“开箱即用”的预编译二进制文件?

或者,是否有任何明确的说明可以正确设置这个扩展,而无需在网上搜寻每个所需的程序集的分开说明?

点赞