当前位置:Gxlcms > 数据库问题 > Cocos2d-x 3.2 Lua项目通过LuaSQLite3使用Sqlite3问题总结

Cocos2d-x 3.2 Lua项目通过LuaSQLite3使用Sqlite3问题总结

时间:2021-07-01 10:21:17 帮助过:25人阅读

#include "lsqlite3.h"
#include "sqlite3.h"

修改xxx\frameworks\cocos2d-x\cocos\scripting\lua-bindings\manual\lua_extensions.c文件,修改如下

#include "luasocket/luasocket.h"
#include "luasocket/mime.h"
#include "lsqlite3/lsqlite3.h"

static luaL_Reg luax_exts[] = {
    {"socket.core", luaopen_socket_core},
    {"mime.core", luaopen_mime_core},
	{"lsqlite3", luaopen_lsqlite3},
    {NULL, NULL}
};

在VS2013中打开解决方案,找到liblua项目,新建lsqlite筛选器,里面添加-现有项,把新建目录lsqlite3中的头文件及源文件均添加进去,生成项目,应该不会存在问题,其实若是不打包及跨平台的话(怎么可能)你还可以这样操作,你就不用下载sqlite3了,直接用cocos2dx提供的sqlite3版本,xxx\frameworks\cocos2d-x\external\sqlite3,这样就要求你在lsqlite3.cpp中包含sqlite3.h的目录要改一下,这时,你的liblua项目就可以仅添加lsqlite3.h和lsqlite3.cpp文件啦,这样liblua是可以编译通过的,但是编我们项目的时候会报sqlite3的函数未定义,一看就是缺少库引用。就把我们的项目中添加库引用。这样程序就能正常编译啦

这个时候若是打包呢,我android包习惯用cocos compile方法,首先说明的是如果用上面第二个方案,打包肯定是很困难的,至少我没有方案,因为我不知道该如何方便的在android.mk引入sqlite3的动态链接库,即便是引入我想后面应该也有很多坑吧,所以一开始把sqlite3编到自己项目里总是明智的,当命令行编译的时候,肯定会报错,因为你还没有把你新增的源文件添加到android.mk中呢,添加后就应该不会有什么大问题了吧。

          ../../../external/lua/lsqlite3/lsqlite3.c           ../../../external/lua/lsqlite3/sqlite3.c \

我的总结性文章一般都是事后写,这样我有时可能仅关注了关键性操作,一些小问题,百度一下,思考一下解决的东西,我可能都不怎么写了,因为已经忘记了,望见谅



版权声明:本文为博主原创文章,未经博主允许不得转载。

Cocos2d-x 3.2 Lua项目通过LuaSQLite3使用Sqlite3问题总结

标签:cocos2d-x 3.2   lua   luasqlite3   sqlite3   luarocks   

人气教程排行