您可能會考慮使用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