1. leveldb 下载编译
1.1 下载
下载链接:https://github.com/google/leveldb.git
Google test:https://github.com/google/googletest.git
1.2 编译
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
安装编译依赖:
- 升级cmake
- apt-get install devscripts debhelper libsnappy-dev
- apt install gdb
1.3 安装
sudo cp build/libleveldb.a /usr/local/lib/
sudo cp -r include/leveldb/ /usr/local/include/
2. 代码阅读
2.1 测试代码
#include <cassert>
#include <iostream>
#include <string>
#include <leveldb/db.h>
int main() {
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
assert(status.ok());
std::string key = "A";
std::string value = "apple";
std::string get;
leveldb::Status s = db->Put(leveldb::WriteOptions(), key, value);
if (s.ok()) s = db->Get(leveldb::ReadOptions(), key, &get);
if (s.ok()) std::cout << "读取到的与(key=" << key << ")对应的(value=" << get << ")" << std::endl;
else std::cout << "读取失败!" << std::endl;
delete db;
return 0;
}
编译:
g++ -o leveldbDemo leveldbDemo.cc -pthread -lleveldb -lsnappy
注:
要添加pthread 和snappy 否则会出现编译库报错