您可能会考虑使用LuaSQL作为包装,因为它已包含在Lua for Windows包中,因此它可能已经在您的系统中。它包括对SQLite3和其他数据库的支持。
看起来您似乎正在尝试构建lsqlite3的最新版本,但此发行版未打包以便轻松构建于Windows或Windows上。由于LuaForge只有一个源代码包,因此我没有试图追踪二进制文件。看起来像成功构建它需要手动编辑Makefile,然后在MSYS或Cygwin下运行Makefile,以使它假定存在的* nix实用程序可用。
更新:2012年6月
因为写这个答案,我有机会考虑使用lsqlite3
自己的,不会要求结合许多不同的数据库提供的灵活性的一个项目,所以建设对SQLite的严格依赖是有道理的。鉴于此,lsqlite3
包装由于它的小尺寸和SQLite C API的许多重要部分的干净实现而非常合适。
为了构建它,我使用了MSYS,它提供了一个最小的类Unix命令提示符并支持与GCC的MinGW端口一起使用的实用程序。在这种环境下,我不得不对Makefile进行小小的修改,强制它使用手动配置,并提供配置详细信息,以确定lua.h
,lua51.dll
,sqlite3.h
和sqlite3.dll
在我的系统中隐藏的位置。
唯一真正的技巧就是将Windows路径名正确映射到MSYS路径名,方法是将C:
更改为/c/
,并避免使用任何带有空格的文件夹名称。因此,使用Windows的Lua for C:\Program Files (x86)\Lua\5.1
,映射到/c/PROGRA~2/Lua/5.1
,使用Windows 8.3短名称来避免空格。
推荐MSYS优于Windows上其他类Unix构建环境的一个关键点是它专门用于此目的。从它构建的程序和DLL没有任何意外的依赖关系。具体而言,这与Cygwin不同,Cygwin旨在提供在Windows之上分层的完整unix-like体验。
随着lsqlite3.dll
刚建成,所有我所要做的就是用sqlite3.dll
和所有出现的工作实例和测试用例一起在我的Lua package.cpath
某处安装它。
对,我使Makefile与Mingw/MSYS一起工作。你也可以使用lsqlite3 rockspec的“内建”目标来构建,如果luarocks安装的话可以构建二进制文件。 – 2010-05-18 21:21:48
嗨,对于延迟抱歉,但娱乐节目不得不退后。当我有机会的时候,我会试试Lua的窗户。谢谢你的提示。 – 2010-05-27 13:06:58
示例luasql代码的工作原理是,如果在lua for windows的示例代码中将sqlite3替换为postgres。请访问http://code.google.com/p/luaforwindows/downloads/list – 2010-05-28 10:06:39