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

 

posted @   cocoajin  阅读(1560)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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工具
点击右上角即可分享
微信分享提示