时间: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