在cocos2dx 引擎里加入sqlite3 数据库可以正常使用sqlite3提供的接口。 但是当我用到sqlite3_column_table_name' 这个接口的时候编译就报错了错误信息如下:


D:/Android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Logic/Src/DB/DbRecord.o: in function CRecord::InitPrepareRecord(sqlite3_stmt*):jni/../../Logic/Src/DB/DbRecord.cpp:227: error: undefined reference to 'sqlite3_column_table_name'
D:/Android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Logic/Src/DB/DbRecord.o: in function CRecord::Init(sqlite3_stmt*):jni/../../Logic/Src/DB/DbRecord.cpp:197: error: undefined reference to 'sqlite3_column_table_name'

  解决方法:

在android.mk 文件中添加 SQLITE_ENABLE_RTREE 和 SQLITE_ENABLE_COLUMN_METADATA  这两个预处理就可以编译通过了。

LOCAL_CFLAGS += -DSQLITE_ENABLE_RTREE\
-DSQLITE_ENABLE_COLUMN_METADATA


这相当于源文件中定义

#define SQLITE_ENABLE_RTREE

#define SQLITE_ENABLE_COLUMN_METADATA


在windows 下vs 编译出错也是同样的问题,在工程属性里,c++的预处理添加SQLITE_ENABLE_RTREE 和 SQLITE_ENABLE_COLUMN_METADATA 就可以编译通过了

更多相关文章

  1. android之xml对象到json对象的转化
  2. java-universal-tween-engine
  3. android 界面组件添加定制属性
  4. Android(安卓)ALSA audio 的一些问题
  5. LCD:LCD常用接口原理篇
  6. Android(安卓)-- Property Animation
  7. Android(安卓)Activity启动模式全面解析
  8. Android框架保证View更新必须在主线程的解读
  9. Android中的Parcelable序列化对象

随机推荐

  1. Android换肤功能实现(白天、黑夜)
  2. 鸿洋博客精选
  3. android 预装第三方apk的方法
  4. 简述compileSdkVersion,minSdkVersion,targ
  5. unity3d android真机测试的2种方法
  6. Android(安卓)基础入门教程——开发环境
  7. Android(安卓)RecyclerView单击、长按事
  8. Android系统中读写和显示图片
  9. Android(安卓)PopupWindow输入框弹起时被
  10. EventBus