leveldb1.2 把玩指南

最近想研究研究leveldb,踩了很多坑,发现网上问题五花八门,全程保姆式记录下自己的坑

ps: 不知道leveldb是啥的小伙伴,就不需要向下看了!!!

背景介绍:

操作系统:CentOS-7
GCC版本:gcc4.8.5

1 把玩第一步——下载源码

第一步就踩坑了,一顿设置,终于能从github上下载了leveldb v1.2的代码,开整

这个细节大家可以自行研究,比较简单 ,主要是设置ssh key

2 把玩第二步——编译

#1 cd leveldb && mkdir build

第二条命令注意使用cmake3

#2 cd build && cmake3 -DCMAKE_BUILD_TYPE=Release .. -DLEVELDB_BUILD_TESTS=0 -DLEVELDB_BUILD_BENCHMARKS=0 && cmake3 --build .

解释下这里禁掉了gtest和benchmark的编译,里面大量使用了c++14标准语法,升级gcc4.8.5比较麻烦,所以这里没搞,感兴趣的小伙伴可以自己深入研究

#3 编译成功 可以看见产出了libleveldb.a

3 把玩第三步——测试

#1 cd build && mkdir test

#2 cd test && vim main.cpp

#include <assert.h> 
#include <iostream> 
#include "leveldb/db.h" 
 
using namespace std; 
 
int main(int argc,char * argv[]) 
{ 
    leveldb::DB* db; 
    leveldb::Options options; 
    options.create_if_missing = true; 
    std::string dbpath = "tdb"; 
    leveldb::Status status = leveldb::DB::Open(options, dbpath, &db); 
    assert(status.ok()); 
    std::string k = "openapi"; 
    std::string v = "openapi@163.com"; 
    cout<<"Open db OK"<<std::endl; 
 
    std::string value; 
    leveldb::Status s; 
    s = db->Put(leveldb::WriteOptions(), k, v);
    s = db->Get(leveldb::ReadOptions(), k, &value);
     
    cout<<value<<std::endl; 
    delete db;
     
    return 0; 
}

#3 g++ -std=c++11 -o ldb main.cpp -I ../../include ../libleveldb.a -lpthread

正常情况下,已经可以看到产出 ldb的可执行文件 

#4 ./ldb

可以看到输出v = openapi@163.com

好,大家可以继续深入把玩leveldb了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值