iOS 轻量级的数据库leveldb
轻量级的数据库leveldb https://github.com/google/leveldb
一:在iOS下编译leveldb
终端:
1: git clone https://github.com/google/leveldb.git
2: 进入根目录
cd leveldb-master
3: 编译:
CXXFLAGS=-stdlib=libc++ make PLATFORM=IOS
编译完成之后,在当前目录里会生成 libleveldb.a , 支持全部模拟器与真机;
头文件在 include 目录下
二:引用库
leveldb是c++的;使用的时候需要oc的.m文件修改为.mm文件;
将编译好的库以group的形式导入到xcode工程;
使用oc的方式引用
#import "db.h"
#import "options.h"
#import "write_batch.h"
这时会出现xxx.h找不到的错误;
直接修改include 目录下的头文件;
把出错的头文件部分做如下修改
这种#include "leveldb/xx.h" 改为#include "xx.h"
三:test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <iostream> #include <string> #include <assert.h> #include "leveldb/db.h" using namespace std; int main( void ) { leveldb::DB *db; leveldb::Options options; options.create_if_missing = true ; // open leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb" , &db); assert (status.ok()); string key = "name" ; string value = "chenqi" ; // write status = db->Put(leveldb::WriteOptions(), key, value); assert (status.ok()); // read status = db->Get(leveldb::ReadOptions(), key, &value); assert (status.ok()); cout<<value<<endl; // delete status = db->Delete(leveldb::WriteOptions(), key); assert (status.ok()); status = db->Get(leveldb::ReadOptions(),key, &value); if (!status.ok()) { cerr<<key<< " " <<status.ToString()<<endl; } else { cout<<key<< "===" <<value<<endl; } // close delete db; return 0; } |
参考:http://www.tanhao.me/pieces/1397.html/
http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具