参考: https://github.com/google/leveldb Google源码地址 http://www.tanhao.me/pieces/1397.html/ 老谭笔记 http://blog.rpplusplus.me/blog/2014/01/20/build-leveldb/ txx’s blog http://www.ifun.cc/blog/2014/02/09/leveldb-for-ios/ Haven’s blog http://herkuang.info/blog/2014/01/28/ios%E4%B8%8B%E7%BC%96%E8%AF%91leveldb%E7%9A%84%E6%80%BB%E7%BB%93/ HOKUANG’S BLOG
个人Demo:https://github.com/ZHANGMRXIN/LevelDBTest
遇到的问题: 1.从GitHub上clone下来的源码文件,编译失败,经检查以下缺少文件。
2.leveldb/db.h file not found. 出现该问题的原因是编译出的静态库.a文件的头文件.h 设置搜索路径有误。具体设置参照下图。
3.最折磨人的一个问题(Google留下的一个坑) 直接使用源代码里面的Makefile文件来进行编译,这时候如果在工程中使用编译出来的.a文件,会报错,找不到arm64.....,真机和模拟器的32位和64位我都试了,全都报错....这个问题就是Google留给我们的巨坑。Makefile文件里涉及真机和模拟器的Architectures写的相当有问题。主要是最后的 .cc.o: 和.c.o: 那里。
原文件:
修改后适用真机及模拟器(包含32位、64位)的Makefile文件:
解决上述三个问题后,就可重新编译.a文件。然后就能正常使用了。
编译命令: 1.首先cd到源码目录的根目录下。 2用命令进行编译 CXXFLAGS=-stdlib=libc++ make PLATFORM=IOS 或 CXXFLAGS=-stdlib=libstdc++ make PLATFORM=IOS 两条命令都可以,用于用到了c++标准库,这儿分别用了新旧不同的库而已。libc++是支持c++ 11标准的,这儿分别对应xcode中引用的两个库ibc++.dylib与libstdc++.dylib两个库。
版权声明:本文为博主原创文章,未经博主允许不得转载。
LevelDB的使用
标签:ios leveldb