当前位置: 首页 > news >正文

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

#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

 

转载于:https://www.cnblogs.com/cocoajin/p/5031070.html

相关文章:

  • 混合的方式开启服务
  • JSDOM对象控制HTML元素
  • NSObject
  • android 环境搭建
  • AJAX 跨域请求 - JSONP获取JSON数据 jsson和jsonp
  • 点击失去焦点的文字
  • mac 终端 常用命令
  • HP ProLiant DL380 G6 服务器 - 清 BIOS 的方法
  • Mysql isam数据库恢复实战
  • A*寻路算法的探寻与改良(二)
  • 让透明div里的文字不透明
  • [原创]好买财富测试环境自动化发布部署系统实践
  • pptpd *** 老是连接不上内网排错
  • stl之map 排序
  • 第三个阶段事后诸葛亮
  • JS 中的深拷贝与浅拷贝
  • 【笔记】你不知道的JS读书笔记——Promise
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • github从入门到放弃(1)
  • JavaScript-Array类型
  • Less 日常用法
  • Python连接Oracle
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • springboot_database项目介绍
  • vue学习系列(二)vue-cli
  • 从零开始的无人驾驶 1
  • 以太坊客户端Geth命令参数详解
  • 用简单代码看卷积组块发展
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #pragma pack(1)
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (java)关于Thread的挂起和恢复
  • (LeetCode C++)盛最多水的容器
  • (超详细)语音信号处理之特征提取
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (六)Hibernate的二级缓存
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • ... 是什么 ?... 有什么用处?
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .aanva
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .Net 6.0 处理跨域的方式
  • .Net 知识杂记
  • .net访问oracle数据库性能问题
  • .NET连接数据库方式
  • :中兴通讯为何成功
  • @RequestMapping用法详解
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured