用 Lua 和 sqlite3 进行数据库操作。

我正在尝试使用Lua与sqlite3(已经在使用c++,但是我不太熟悉Lua-我阅读了这里)但是在尝试构建库或其他时出现以下错误:

C:\ lib \ lsqlite3-7> mingw32-make
process_begin:CreateProcess(NULL,pkg-config --version,...)失败。
makefile:53:*** windows32。 停止。

我一点也不觉得makefile失败了,但我无法做到这一点(是空格还是制表符?它们必须去哪里?),我认为有适用于Windows的二进制文件?

欢迎任何简单的答案。我没有时间学习make或安装cygwin或其他东西。

原文链接 https://stackoverflow.com/questions/2858310

点赞
stackoverflow用户68204
stackoverflow用户68204

你可以考虑使用LuaSQL作为你的包装器,因为它已经包含在Lua for Windows包中,所以它很可能已经在你的系统中。它包括对SQLite3和其他数据库的支持。

看起来你正在尝试构建最新版的lsqlite3,但是该版本未经过打包,无法轻松地在Windows上构建。由于LuaForge只有一个源代码包,我没有尝试寻找二进制文件。构建它将需要手动编辑Makefile,然后在MSYS或Cygwin下运行Makefile,以便它可以使用它假定存在的*nix工具。

更新:2012年6月

自回答以来,我有机会考虑使用lsqlite3进行一个项目,该项目不需要与许多不同的数据库提供程序绑定的灵活性,因此在SQLite上构建一个紧密的依赖关系是有意义的。鉴于此,lsqlite3包装器是一个很好的选择,因为它的大小很小,对SQLite C API的许多重要部分有着清晰的实现。

为了构建它,我使用了MSYS,它提供了一个最小的类Unix命令提示符和支持工具,供与GCC的MinGW端口一起使用。在这个环境下,我不得不对Makefile进行一些小修改,以强制它使用手动配置,并提供配置细节,标识lua.hlua51.dllsqlite3.hsqlite3.dll在我的系统上。

唯一真正的问题是通过将C:更改为/c/正确映射Windows路径名到MSYS路径名,并避免使用任何带有空格的文件夹名称。因此,在C:\Program Files (x86)\Lua\5.1上使用Lua for Windows,这映射到/c/PROGRA~2/Lua/5.1,使用Windows 8.3短名称以避免空格。

建议MSYS而不是其他Windows上的类Unix构建环境的关键点是它是专门为此目的而设计的。从中构建的程序和DLL没有任何意外的依赖关系。特别是,这与旨在提供完整的在Windows上叠加类Unix体验的Cygwin不同。

使用刚刚构建的lsqlite3.dll,我所要做的就是将其安装到Lua package.cpath的某个位置,共享库sqlite3.dll和示例以及测试用例似乎都能正常运行。

2010-05-18 20:21:21