2010-05-18 42 views
0

我想与lua(我已经使用C++,但我是一个n00b与lua,我读this)使用sqlite3,但我试图建立库或任何时候得到以下内容:使用sqlite3与lua

C:\lib\lsqlite3-7>mingw32-make 
process_begin: CreateProcess(NULL, pkg-config --version, ...) failed. 
makefile:53: *** windows32. Stop. 

我不是在生成文件没有感到惊讶,但我不能做他们(?是空格或制表符它在哪里,他们必须去),我会觉得有一二进制窗口?

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

回答

1

您可能会考虑使用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.hsqlite3.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某处安装它。

+0

对,我使Makefile与Mingw/MSYS一起工作。你也可以使用lsqlite3 rockspec的“内建”目标来构建,如果luarocks安装的话可以构建二进制文件。 – 2010-05-18 21:21:48

+0

嗨,对于延迟抱歉,但娱乐节目不得不退后。当我有机会的时候,我会试试Lua的窗户。谢谢你的提示。 – 2010-05-27 13:06:58

+0

示例luasql代码的工作原理是,如果在lua for windows的示例代码中将sqlite3替换为postgres。请访问http://code.google.com/p/luaforwindows/downloads/list – 2010-05-28 10:06:39