我研究了至少 6 种不同的 SQL Lua 扩展,它们的最新版本似乎都与 Lua 的 5.1 版本兼容。我在使用 Lua 5.2 的当前项目中实现它们中的任何一个的成功率为零,最好的情况是以静默程序崩溃或attempt to call global 'module' (a nil value)
.
我不是最初的项目所有者,所以我尽量不要被迫更改它的源代码(尽管最近,我什至已经走上了这条路)。
通常,不清楚这些崩溃是否与项目本身的运行方式、项目实现 Lua(作为静态库)的方式、Lua 尝试实现其扩展的方式、扩展实现其依赖项的方式有关,版本控制冲突,或每种的某种疯狂组合。以这种方式调试无声崩溃实际上是不可能的,因为邪恶的根源实际上可以是任何东西。
正如这个问题中的答案所述,我什至尝试支持模块功能(大多数 lua sql 扩展使用,但在 5.2 中已弃用),但程序仍然崩溃或只是抱怨看似无限量的缺失依赖项。在花费数小时追踪(似乎是)它会抱怨的所有依赖项之后,它仍然崩溃。
将项目的源代码更改为使用 Lua 5.1 源代码似乎会破坏项目的功能,从而导致有关缺少 5.2 相关函数的各种编译器错误。将MySQL C/C++ 连接器链接到项目会导致相当模糊的运行时错误,这似乎与项目实现 Lua 5.2 的方式相冲突。
是否有任何在 32 位 Windows 机器上实际与 Lua 5.2 一起工作的 sqlite/MySQL 扩展?最好是带有 Lua 源/ffi 绑定的“开箱即用”预编译二进制文件?
或者,是否有关于如何正确设置此设置的明确说明,而不必为每个所需的组件在网络上搜索单独的说明?